Apacta SDK in TypeScript
Built from OpenAPI schema
@apacta/sdk
Using 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