@apacta/sdk
v0.10.233
Published
Autogenerated TypeScript SDK from OpenAPI schema
Keywords
Readme
Apacta SDK in TypeScript
Built from OpenAPI schema
Using @apacta/sdk
On your client project.
npm install --save @apacta/sdk- Ensure you're pinning the exact version like
0.7.5and not^0.7.5as we break stuff in patches/minors
Making changes to the SDK
Start by running npm install from this directory.
Create a branch for your changes
Always base your branch off of master and merge it back into master. Something like chore/sdk-0.21.10 could be a good branch name.
It might be tempting to make schema changes on feature branches, but it can cause synchronisation issues for other developers as soon as the feature branch is merged.
Changing the schema
The schema lives in packages/openapi/apacta-simple.yaml. Make the necessary changes and run the following.
npm run build
Run git diff to see what has changed.
Publish to NPM
If you're happy with the changes, you can now publish them to NPM. To be able to do that you need a login to NPM and access to the apacta organisation.
npm loginnpm version patch(or useminorormajor)npm publish
Verify that the change didn't break anything
Change @apacta/sdk version to your new version in packages/control-panel/package.json and run npm install there.
Then run npm run verify. It will tell if there are any type errors.
When those are fixed, submit those changes with your SDK changes for code-review.
Maintainance
- Check schema file for recommendations:
npx openapi-generator-cli validate --recommend -i ../openapi/apacta-simple.yaml
- Check for new version of the java utility used behind the scene (and optionally update it using the TUI)
npx openapi-generator-cli version-manager list
Building schema without NodeJS/npm
- Call this from the root of the monorepo:
docker run -it -v $(pwd):/local -w /local/packages/apacta-sdk openapitools/openapi-generator-cli generate \ -i /local/packages/openapi/apacta-simple.yaml \ -g typescript-fetch \ -o src/generated \ --additional-properties supportsES6=true,typescriptThreePlus=true,withInterfaces=true - The files should now be updated in your repo
