Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 2.94 KB

contributing.md

File metadata and controls

64 lines (53 loc) · 2.94 KB

Using the OpenAPI Generator to generate new models

Start container

podman pull docker://openapitools/openapi-generator-online 

Start container at port 8888 and save the container id

CID=$(podman run -d -p 8888:8080 openapitools/openapi-generator-online)
sleep 10

# Execute an HTTP request to generate a Ruby client
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{"openAPIUrl": "https://api.authress.io/", "options": { "useSingleRequestParameter": true, "packageName": "authress", "packageVersion": "99.99.99" } }' 'http://localhost:8888/api/gen/clients/go'


# RESPONSE: { "link":"http://localhost:8888/api/gen/download/b11ce82c-37dd-448b-b51b-d42bf3f04c2e" }

Download the generated zip file

wget RESPONSE_LINK

# Unzip the file
unzip SHA

# Shutdown the openapi generator image
podman stop $CID && podman rm $CID

Common review items

  • Inputs to Constructor are (string: authress_api_url, string: service_client_access_key)
  • (Go: Only) Move out ctx for every method to have a dedicated WithContext(ctx) continuation, and default to Context.Background().
  • authress_api_url should sanitize https:// prefix and remove trailing /s
  • Add authentication to the configuration class.
  • Change configuration class name to be AuthressSettings
    • Specify all the inputs to be consistent across languages
  • constructors for classes should only have relevant input properties, for instances links are not required.
  • Update documentation
    • Make sure markdown is valid
    • Remove unnecessary links
    • Add first class examples to readme.md + api documentation
    • Find failed UserId, RoleId, TenantId, GroupId, Action properties and convert them to strings
  • Remove any unnecessary validations from object and parameter injection, often there are some even when properties are allowed to be null
  • The service client code to generate a JWT from private key needs to be added
  • Add UnauthorizedError type to the authorizeUser function
  • GET query parameters should be an object
  • Top level tags from the API should accessible from the base class: authressClient.accessRecords.getRecords(...)
  • Automatic Retry
    • Automatic fallback to cache
  • OptimisticPerformanceHandler - Automatic fallback to cache on timeout reached
  • In memory caching for authorization checks - memoize
  • Unsigned int for all limits
  • readonly properties are never specified as required for request bodies
  • Update Documentation for the API
  • Validate all enums are enums and can be null when they should be.
  • Remove LocalHost from the docs
  • Tests
  • If-unmodified-since should called expectedLastModifiedTime, accept string or dateTime and convert this to an ISO String
  • Update OAuth2 openapi authentication references in the documentation
  • Find all incorrect references to version 99.99.99
  • Inject in the User-Agent