- springBootVersion = '2.6.7'
- Java 11, Maven
mvn spring-boot:run
vaikimisi profiil dev
Eeldused:
- Tomcat8 on masinas installitud, ning kaustaks on
/var/lib/tomcat8/
- Maven ning Java8 on masinas installitud
- Vajalikud ruuterisse saabuvate päringute failid ja .env.json failid on kirjeldatud ja olemas.
Ruuteri .war faili tekitamine ning paigaldamine tomcat8-sse.
- Clone ruuter stash repo.
- Maveni käsk ruuteri stash repos
mvn clean package
- Kopeerida ruuteri stash repost
configuration_env
kataloog/var/lib/tomcat8/
. - Kopeerida ruuteri stash repos
urls.env.json
kataloog/var/lib/tomcat8/
. - Ruuteri kaustas
target/ruuter.war
paigaldada tomcat8 kataloogi/var/lib/tomcat8/webapps/
. sudo service tomcat8 start
kui tomcat8 oli maas.sudo service tomcat8 restart
kui tomcat8 oli üleval
NB! eelpoolainitud configuration_env sisaldab päringute konfiguratsioone .json failide kujul ning eelpoolmainitud urls.env.json sisaldab muutujaid mida annab eelpoolmainitud json failides asendada. nt. kui configuration_env folderis asuvas .json failis on rida "endpoint": "{mingimuutuja}" ja urls.env.json sees on rida "mingimuutuja":"mingiväärtus" siis lõplik konfiguratsioon saab olema "endpoint":"mingiväärtus"
kasutuses saab vastavaid konfiguratsioone ning nende asukohti ka muuta. "application.properties" failis on defineeritud ruuter.config.env.file.path=${user.dir}/urls.env.json ruuter.config.path=${user.dir}/configuration_env
seega on võimalik urls.env.json ja configuration_env nimesid ja asukohti ka muuta kui selleks soov/vajadus peaks olema Loomulikult on võimalik muuta muutujate väärtused urls.env.jsoni sees või jsonfailides configuration_env kaustas. Selleks et tehtud muudatused effekti omaks peab tegema tomcat8 restardi.
Kuidas käib konfiguratsioonifailide kirjutamine sellest järgmises peatükis.
Konfiguratsioonifailis esinevatest muutujatest aru saamiseks on sellesama README.md-ga samas kaustas REQUEST_CONFIGURATION_EXAMPLE.json.txt fail.
Lisaks on võimalik vaadata ja testida kuidas erinevad konfiguratsioonifailid töötavad tänu mock API endpointidele ja mock ehk näidis konfiguratsioonidele.
"application.properties" failis on defineeritud muutuja ruuter.mock.path=${user.dir}/mock_configurations
sellesse kausta on võimalik laadida konfiguratsioonifailid mis seadistaksid pöördumisi /mock API endpointidele.
Repositooriumis on praegusel hetkel kaustas /mock_configurations näidis konfiguratsioonifailid.
Neid näidiseid võib kopeerida ruuteri kausta /var/lib/tomcat8/mock\_configurations
.
Seadistuste detailide õppmiseks võib sarnaseid faile ka ise koostada. Peale vajalikku kausta kopeermist ning rakenduse taaskäivitamist
saab teha päringuid käesoleva rakenduse /mock/KONFIGURATSIOONIS_SEATUD_KOOD API endpoint-ide vastu.
Lihtsamaks testseadistuste kirjutamiseks on saadaval ka rakenduse API endpoint-id /sandbox/ok ja sandbox/nok
mis annavad päringutele vastuseks HTTP 200 ja 400 koodidega vastuseid.
Repositooriumis olevate näidiskonfiguratsioone kirjeldab täiendavalt sellesama README.md failiga samas kataloogis olev REQUEST_EXAMPLES.md fail kus on ka välja toodud näidispäringud ja vastused.
Käesoleval rakendusel on ka iseseisev valideerimisteenus saadaval otspunktist /match_input mille abil on võimalik kontrollida oma sisendi vastavust teatud formaadile. Näidispäringud selle kohta kuidas töötab valideerimisteenus asuvad selle README.md failiga samas kaustas olevas failis nimega VALIDATION_REQUEST_EXAMPLES.md
##Seletus
Konfi loogikat on võimalik kontrollida läbi tehtud päringule saadud vastuse staatuse koodi. Kliendi või serveri poolne viga liigutab loogika edasi nok sammu, muul juhul liigub konf edasi ok sammu.
##Tehniline
nok: Sammu liigutakse kui HTTP kood/vastus (status code) on 4xx või 5xx.
ok: Sammu liigutakse kõikide ülejäänud HTTP vastuse juhul.
Eeldefineeritud "actionid": Selleks et määrata mida konfiguratsioon teeb "ok" või "nok" puhul, saab kasutada ette defineeritud "tegevusi", mis on kirjeldatud siin:
ResponseNokType.
##Näide
"configuration": {
"verification_step": {
// Verification request
"response": {
"ok": "proceed",
"nok": "stop"
}
},
"proceed": {
// Request that must be preceeded by verification
}
}
See licence here.