intesys / openhospital-api

OpenHospital API
GNU General Public License v3.0
2 stars 4 forks source link

Open Hospital API

Java CI with Maven

This is the API project of Open Hospital: it exposes a REST API of the business logic implemented in the openhospital-core project.

Summary

Table of contents generated with markdown-toc

How to build [WIP]

For the moment, to build this project you should

  1. fetch and build the core project

    git clone https://github.com/informatici/openhospital-core.git
    cd openhospital-core
    mvn clean install -DskipTests=true
  2. clone and build this project

    git clone https://github.com/informatici/openhospital-api
    cd openhospital-api
    mvn clean install -DskipTests=true
  3. prepare settings from each rsc/*.dist file

    rsc/application.properties <- set a SHA-256 jwt token
    rsc/database.properties
    rsc/log4j.properties
    rsc/...
  4. set target/rsc/database.properties

    DB can be created with `docker-compose up` from `openhospital-core` or using a dedicated MySQL server
  5. start openhospital-api (in target folder)

    # Windows
    java -cp "openhospital-api-0.1.0.jar;rsc/;static/" org.springframework.boot.loader.JarLauncher
    
    # Linux
    java -cp "openhospital-api-0.1.0.jar:rsc/:static/" org.springframework.boot.loader.JarLauncher
  6. call services

You can see Swagger Api Documentation at: http://localhost:8080/swagger-ui/

image

Using Swagger-UI

  1. use endpoint /auth/login to login and get the token

image image

  1. use the Authorize button at the top of the Swagger-UI, paste the token from step #1 and click Authorize

image

  1. close the dialog

image

  1. now all the endpoints are automatically secured and the token will be added to the request

image

Using Postman

  1. import postman_collection.json in your Postman installation

How to deploy backend in Docker environment

Make sure you have docker with docker-compose installed, then run the following commands:

When done successfully, head over at http://localhost:[API_PORT]/swagger-ui/

You can change the deployment branch using an .env file.

How to generate openapi specs

Make sure to have API started without errors.

Run the Maven command and it will overwrite the openapi/oh.yaml

mvn springdoc-openapi:generate

To redirect the output to another file, use:

mvn springdoc-openapi:generate -Dspringdoc.outputFileName=my_revision.yaml

Cleaning

docker compose rm --stop --volumes --force
make clean

How to contribute

You can find the contribution guidelines in the Open Hospital wiki.
A list of open issues is available on Jira.

Community

You can reach out to the community of contributors by joining our Slack workspace or by subscribing to our mailing list.

Code style

This project uses a consistent code style and provides definitions for use in both IntelliJ and Eclipse IDEs.

IntelliJ IDEA instructions For IntelliJ IDEA the process for importing the code style is: * Select *Settings* in the *File* menu * Select *Editor* * Select *Code Style* * Expand the menu item and select *Java* * Go to *Scheme* at the top, click on the setting button by the side of the drop-down list * Select *Import Scheme* * Select *IntelliJ IDE code style XML* * Navigate to the location of the file which relative to the project root is: `.ide-settings/idea/OpenHospital-code-style-configuration.xml` * Select *OK* * At this point the code style is stored as part of the IDE and is used for **all** projects opened in the editor. To restrict the settings to just this project again select the setting button by the side of the *Scheme* list and select *Copy to Project...*. If successful a notice appears in the window that reads: *For current project*.
Eclipse instructions For Eclipse the process requires loading the formatting style and the import order separately. * Select *Preferences* in the *Window* menu * Select *Java* * Select *Code Style* and expand the menu * Select *Formatter* * Select the *Import...* button * Navigate to the location of the file which relative to the project root is: `.ide-settings/eclipse/OpenHospital-Java-CodeStyle-Formatter.xml` * Select *Open* * At this point the code style is stored and is applicable to all projects opened in the IDE. To restrict the settings just to this project select *Configure Project Specific Settings...* in the upper right. In the next dialog select the *openhospital* repository and select *OK*. In the next dialog select the *Enable project specific settings* checkbox. Finally select *Apply and Close*. * Back in the *Code Style* menu area, select *Organize Imports* * Select *Import...* * Navigate to the location of the file which relative to the project root is: `.ide-settings/eclipse/OpenHospital.importorder` * Select *Open* * As with the formatting styles the import order is applicable to all projects. In order to change it just for this project repeat the same steps as above for *Configure Project Specific Settings...*