TypeSchema is a JSON specification to describe data models.
A TypeSchema specification can be easily transformed into code for almost any programming language. This helps to reuse core data models in different environments. More information at: https://typeschema.org
The TypeSchema meta specification which describes the specification itself is located at specification/typeschema.json. We automatically push the specification to the TypeHub platform where you can see also a rendered version of the specification and download the auto generated models.
- An elegant specification optimized for code-generation
- A portable format to share data models across different programming languages
- Generate clean and simple to use DTOs
- Handle advanced concepts like inheritance, polymorphism and generics
- Use reflection to easily turn any class into a TypeSchema specification
- Easily implement your own code generator
We provide a hosted version of the code generator at our website.
To transform a TypeSchema specification into code you can use our generator
docker image. Simply run docker-compose up
which reads the typeschema.json
specification from the output/
folder and writes the generated code back into this folder.
services:
generator:
image: apiootech/typeschema-generator:0.6
environment:
# possible formats: csharp, go, java, php, python, rust, typescript
FORMAT: "java"
NAMESPACE: "org.acme"
SOURCE: "typeschema.json"
volumes:
- ./output:/usr/src/typeschema/output
For more advanced integration options please take a look at the SDKgen project which offers various integration options like a CLI, GitHub action or REST API.
TypeSchema provides auto-generated models which describe the specification itself. These models can be used if you want to work with a TypeSchema specification.
Language | GitHub | Package |
---|---|---|
C# | GitHub | Nuget |
Go | GitHub | |
Java | GitHub | Maven |
JavaScript | GitHub | NPM |
PHP | GitHub | Packagist |
Python | GitHub | PyPI |