Awesome
Starter kit per la pubblicazione di API interoperabili in Go
Questo repository contiene il template di un'API interoperabile scritta in Go.
Contenuto
-
Due progetti di esempio in Go:
- in
go-echo
basato su https://github.com/labstack/echo - in
go-chi
basato su https://github.com/go-chi/chi
- in
-
Una directory
openapi
con le specifiche
Istruzioni
Gli step per la creazione di API interoperabili sono:
-
scrivere le specifiche in formato OpenAPI v3 partendo dagli esempi in
openapi
; -
scrivere o generare il codice a partire dalle specifiche. Ora i tool di swagger per Python supportano correttamente OpenAPI v3 dalla version 3.0.0.
-
scrivere i metodi dell'applicazione
Scrivere le specifiche
Le specifiche devono essere scritte in formato OpenAPIv3 e rispettando le Linee Guida di interoperabilità.
Queste presentazioni possono essere d'aiuto:
Risolvere le dipendenze negli OpenAPI
Le specifiche OpenAPI possono contenere riferimenti a schemi esterni
o yaml anchors. E' possibile risolverli tramite il modulo python
openapi_resolver
, richamato dal Makefile
.
In questo repository, i file con anchor e ref hanno estensione .yaml.src
ma sono a tutti gli effetti file OAS3 validi e la maggior parte dei
tool li interpreta correttamente.
E' comunque possibile dereferenziarli
per comodità tramite il comando:
make yaml
Generare il codice del server
Il Makefile
contiene:
-
un esempio di code generation con
echo framework
eseguibile con:make clean run
-
un esempio di code generation con
echo framework
eseguibile con:make clean run-chi
Dipendenze
Per eseguire questa app servono:
make
python 3 + tox
docker
Per l'esecuzione via docker, lanciare:
docker-compose up -d api
Test [WIP]
E' possibile testare in locale tramite circleci, con:
circleci build