@apacta/sdk
v0.10.233
Published
Autogenerated TypeScript SDK from OpenAPI schema
Downloads
253
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.5
and not^0.7.5
as 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 login
npm version patch
(or useminor
ormajor
)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