Eriilisen sovelluksen asennus
Järjestelmävaatimukset
Java 17 tai uudempi
Kääntäminen
Sovellus tulee kääntää erikseen spring-boot-hakemistossa.
Luo konfiguraatiotiedosto
Luo tiedosto application.yml ja määrittele vivulla --spring.config.location=/<koko polku>/api-application.yml sen sijainti.
Kopioi Java key store (api-application-keystore.pfx) Peppi Karaf asennuksesta.
application:
# Api Application tulee olla samalla aikavyöhykkeellä kuin Pepin karaf
# Europe/Helsinki on oletus
timezone: Europe/Helsinki
spring:
application:
name: Api Application
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mysql://localhost/test
username: dbuser
password: dbpass
server:
port: 8080
internal:
port: 8081
api:
keystore:
file: <polku minne on kopioitu>/keystore.pfx
password: <salasana>
security:
# Oletus on EC, voi olla myös RSA. tulee olla sama kuin karafin /etc/api_application.properties tiedostossa
keyPairAlgorithm: EC
cache:
endpoint:
# Kauan sallitut REST APIt pidetään välimuistissa, oletus on 30 s.
timeoutInSeconds: 30
jwt:
# Tämä määrittelee kauanko JWT muutokset kestää ennen kuin tulevat voimaan.
# JWT tarkastajan luonti on raskas operaatio joten tuotannossa laita isoksi esim. yksi tunti (3600).
# Hätätapauksessa voit tyhjentää välimuistin uudelleen käynnistämällä Rajapintasovelluksen.
# Oletus on 600
verifierInSeconds: 600
rest:
# Oletus on 180
timeoutInSec: 180
pathPrefix: internal-api
headers:
# Sallitut headerit integraatiolta ja jotka välitetään Pepiltä eteenpäin
# Huom, tulee olla pilkulla eroteltu list
allowed:
Accept,
Accept-Charset,
Accept-Encoding,
Accept-Language,
Accept-Patch,
Accept-Ranges,
Age,
Cache-Control,
Content-Encoding,
Content-Language,
Content-Location,
Content-Type,
ETag,
Expires,
If-Match,
If-Modified-Since,
If-None-Match,
If-Range,
If-Unmodified-Since,
Last-Modified,
Location,
Range,
ESP-Language,
ESP-ScreenName
parameters:
excluded:
# TODO Tarvitaan jos api-key voi tulla parametrina
# api-key
study:
# Haun maksimi koko, oletus on 5000
max_search_size: 5000
peppi:
baseUrl: http://localhost:8181/api
# oletus on peppi.admin
screenname: peppi.admin
organization:
code: oppilaitosnumero
# Oletus, tulee olla sama kuin studentregistry.languages tai esp.languages
languages: fi,en,sv
offering:
# if offering uses single credits the min (optionality) credits is zero (old bug)
# This tells to use max as min value in HEDI creditRange for offering
# Default value is false
uses_single_credits: true
paid:
# Kts arvo system-ext.properties-tiedostosta
applicant.desktop.registration.package.url:
# Kuten Pepin opensearch.properties, kts. https://wiki.metropolia.fi/pages/viewpage.action?pageId=300384355
opensearch:
url:
scheme: http
host: node1-cluster1
port: 9200
auth:
username: <käyttäjätunnus>
password: <salasana>
Swagger / OpenAPI
Swagger ei vaadi API avainta joten suositeltavaa on asentaa se nginx basic auth taakse.
Swagger saa päälle seuraavasti:
springdoc:
writer-with-default-pretty-printer: true
swagger-ui:
enabled: true
Järjestä Swagger / OpenAPI
Swagger / OpenAPI saa luettavammaksi kun järjestää tagit (tagsSorter), osoitteet ja metodit (operationsSorter) aakkosjärjestykseen.
Esim:
springdoc:
swagger-ui:
operationsSorter: alpha
tagsSorter: alpha
Swagger ja reverse proxy
Jos Rajapintasovellus on reverse proxyn takana, Swagger osoitteet saa muutettua seuraavasti.
springdoc:
swagger-ui:
# Muuta Swagger URL /swagger-ui/index.html --> /integration/swagger-ui/index.html
path: /integration/swagger-ui
api-docs:
# Muuta Open Api URL /v3/api-docs --> /integration/v3/api-docs
path: /integration/v3/api-docs