Today Accord Project released Concerto v2.1.0 adding support for converting Concerto models to OData v4.0.1.

Concerto models can now be converted to:

  • CTO (a text serialization)
  • JSON (a representation of the full Concerto metamodel serialized to JSON)
  • UML (using the PlantUML text serialization)
  • JSON Schema
  • XML Schema
  • GraphQL
  • TypeScript
  • CSharp
  • Java
  • Go
  • OData

Once you have defined your data model using Concerto (either using the JSON or CTO syntax) you can use the markus command line to convert your model to once of the supported output formats, or you can use the APIs to perform model conversion on-the-fly within your application.

Why do you care?

I would strongly encourage you to think about your data models (domain models) with platform independence in mind — as most modern applications end up having to keep multiple model representations in sync: TypeScript for the front-end, JSON Schema or OData for mid-tier REST APIs, or GraphQL, and then Java, Go or TypeScript for backend busines logic.

The Concerto metamodel is designed to have “just-enough” expressivity to represent real domain-models, while remaining constrained enough to map to most model representations.