api
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
api [2019/03/20 16:30] – skipidar | api [2023/12/01 21:27] (current) – skipidar | ||
---|---|---|---|
Line 3: | Line 3: | ||
The API design tooling. | The API design tooling. | ||
+ | JSON API, OpenAPI and JSON Schema Working in Harmony | ||
+ | https:// | ||
- | ==== Declaration ==== | ||
- | === Spring HATEOAS | + | ==== Communication options ===== |
- | The https:// | + | |
- | is the API which is capable to generate a clean HATEOAS API | + | |
- | our of some Data Access Objects (DAOs) / Resources. | + | |
- | The requirement is - the ability to map the backend to DAOs. | + | |
- | By exporting the full API | + | {{https://s3.eu-central-1.amazonaws.com/alf-digital-wiki-pics/ |
- | < | + | |
- | http://localhost: | + | |
- | </code> | + | |
- | and importing it via the Swagger Editor in a browser: | + | ==== IDEA ==== |
- | http://editor.swagger.io | + | |
- | < | + | === Graphql API === |
- | Select Paste JSON… from the File menu. | + | Get the data by describing it https://graphql.org/ |
- | </ | + | |
+ | |||
+ | === HATEOAS API === | ||
+ | Use links and self describtive API resources, to navigate trhough teh API. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Standard ==== | ||
+ | |||
+ | === HAL - Hypermedia api langauge === | ||
+ | |||
+ | HAL really is just a document format for a hypermedia API, like HTML is for hypertext. It doesn’t tell you how to express your domain model, and doesn’t really tell you how to use HAL to submit changes. | ||
+ | |||
+ | |||
+ | === JSON:API === | ||
+ | Whereas JSON API is almost like an “ORM over HTTP”, HAL does a lot less for you though, so it’s not really an apples-to-apples type of comparison. | ||
+ | |||
+ | HAL really is just a document format for a hypermedia API, like HTML is for hypertext. It doesn’t tell you how to express your domain model, and doesn’t really tell you how to use HAL to submit changes. | ||
- | It can be imported to SWAGGER form | ||
+ | ==== Schema==== | ||
=== JSON Schema === | === JSON Schema === | ||
Line 45: | Line 57: | ||
|Swagger Editor|Creation of the SWAGGER API| | |Swagger Editor|Creation of the SWAGGER API| | ||
+ | ==== Implementation ==== | ||
- | === Graphql API === | ||
- | Get the data by describing it https:// | ||
+ | |||
+ | === Spring HATEOAS === | ||
+ | The https:// | ||
+ | is the API which is capable to generate a clean HATEOAS API | ||
+ | our of some Data Access Objects (DAOs) / Resources. | ||
+ | The requirement is - the ability to map the backend to DAOs. | ||
+ | |||
+ | By exporting the full API | ||
+ | < | ||
+ | http:// | ||
+ | </ | ||
+ | |||
+ | and importing it via the Swagger Editor in a browser: | ||
+ | http:// | ||
+ | < | ||
+ | Select Paste JSON… from the File menu. | ||
+ | </ | ||
+ | |||
+ | It can be imported to SWAGGER form | ||
+ | |||
+ | |||
+ | === Spring Katharsis.io === | ||
+ | The lib, helping to implement an API, which is conform to Json:API. | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | * There are also libs, which generate a JSON:API conform API from Resources and Data Access Objects. E.g. https:// | ||
+ | * There is a detailed description of the API structure, separated from the implementation: | ||
+ | * There is a JSON Schema, helping to validate our APIs automagically E.g. https:// | ||
api.1553099446.txt.gz · Last modified: (external edit)