Navigation Menu

Skip to content

regulaforensics/DocumentReader-web-openapi

Repository files navigation

Regula Document Reader OpenAPI definitions

documentation release

Main GitHub repository

Clients

  • 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

Structure

  • 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

Updating clients according to the current spec

To update clients, use update clients GitHub action. Specify title PR and press run. For each client PR with changes will be created.

⚠️ NOTE: Static typed clients, such as Java or C#, require adding all new enums to update-models.sh ENUM_MAPPINGS section.

⚠️ NOTE: For some clients generator produces not-valid client code. See update-models.sh for ad-hocks fixing generator issues.

⚠️ NOTE: Do not edit generated code. Create wrappers, decorators, etc in ext folder.

💡 All clients have RawResultItem container that is used for deserialization for undescribed types. This container is a simple map/dict.

Spec validation

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli validate --recommend -i /local/index.yml 

Building Redoc single page html documentation

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"

Bundle scheme to single .json file

npx openapi-generator-cli generate -i index.yml  -g openapi  --skip-validate-spec