vetscan-fuse-vetxml-simulator
API simulator for Fuse VetXML
Docker Setup
- Copy .env.example to .env
- Create the external network if it doesn't exist
docker network create vetscan-cloud-network
- Run
docker-compose up
Manual Setup
Install dependencies
npm install
Run locally:
npm run dev
Database
This app depends on postgres. For development, a docker configuration has been provided.
Migrations
We use the knex module for migrations. Once you start the application, the migrations run automatically.
In case you would like to run the migrations manually:
npm knex migrate:latest
to run migrations
npx knex migrate:down
to rollback one migration. And
npx knex migrate:make migration_name
to create a new migration. You can see more in the module's documentation.
Development workflow
See the Vetscan Cloud (git workflow)[https://github.com/ZoetisDenmark/vetscan-cloud#git-workflow].
Database for development locally
To create the database (this will run a docker container with postgres and the database structure based on the db.sql
script):
npm run create-db
To start the database once it is created just run:
npm run start-db
To stop the database once it is created just run:
npm run stop-db
To delete the database once it is created just run:
npm run delete-db
API Documentation
To update the API documentation, modify the apidocs/api.yaml
file following the OpenAPI Specification version 3.0.2.
To visualize the API Documentation run the serve-docs
script or use any OpenAPI 3 compatible tool, for example Swagger editor.
npm run serve-docs
To generate a static HTML file of the documentation:
npm run bundle-docs
API Development Environment
To integrate the API specification with Postman or a similar environment, it must support OpenAPI 3.0.0. Postman allows to import the specification file apidocs/api.yaml
.
Running
Compile the code and run in one command:
npm start
This command runs both npx tsc
(to compile the code) and node dist/index.js
(to run).
Deployment
The service is running as an App Service on azure on the mhe@smb.dk account, the name of the app service instance is vetxmlapi
.
The app gets deployed automatically from the develop
branch and it's accessible at https://vetxmlapi.azurewebsites.net
In azure you can access logs, restart and stop the app.