- JavaScript client for the browser and node.js based on axios
- Java client compatible with jvm and android
- Python 3.5+ client
- C# client for .NET & .NET Core
- index.yml - definition entry point
- common.yml - small enums and popular models
- rt.yml - definitions import of all possible results types
- e - *.yml - files with huge enum definitions
- rt - *.yml - files describing results types
- p - *.yml - files describing endpoints
To update clients, use update clients
GitHub action. Specify title PR and press run. For each client PR with changes will be created.
update-models.sh
ENUM_MAPPINGS section.
update-models.sh
for ad-hocks fixing generator issues.
💡 All clients have RawResultItem container that is used for deserialization for undescribed types. This container is a simple map/dict.
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli validate --recommend -i /local/index.yml
Edit rt.yml - remove components.schemas.ResultItem.discriminator node
Edit rt-authenticity.yml - remove components.schemas.AuthenticityCheckResultItem.discriminator
Then run next command:
npx redoc-cli bundle "$PWD/index.yml" --output document-reader-static-doc.html \
--options.maxDisplayedEnumValues=5 --options.theme.logo.gutter="20px" \
--options.theme.colors.primary.main="#8a53cb" --options.expandResponses="all" \
--options.expandSingleSchemaField --options.hideDownloadButton --options.jsonSampleExpandLevel="6"
npx openapi-generator-cli generate -i index.yml -g openapi --skip-validate-spec
For generate code in Go by oapi-codegen, here are some changes:
-
Edit rt.yml - remove components.schemas.ResultItem.discriminator node
-
Edit rt-authenticity.yml - remove components.schemas.AuthenticityCheckResultItem.discriminator
-
Edit single.yml:
/api/v2/transaction/{transaction_id}/process -> /api/v2/transaction/{transactionId}/process
/api/v2/transaction/{transaction_id} -> /api/v2/transaction/{transactionId}
/api/v2/transaction/{transaction_id}/results -> /api/v2/transaction/{transactionId}/results
/api/v2/transaction/{transaction_id}/file -> /api/v2/transaction/{transactionId}/file
/api/v2/tag/{tag_id} -> /api/v2/tag/{tagId}
Then run next command:
npx @redocly/openapi-cli@latest bundle index.yml > single.yml