đ Kotlin Spring 5 Webflux functional application with api request validation and interactive api doc
OTHER License
A project template for Kotlin Spring WebFlux. The template features automatic request validation and interactive API documentation using an OpenApi 3.0 or Swagger 2.0 specification. The template provides 12-factor compliant environment based config and integrated in linting.
Request validation and interactive documentation are based on an OpenApi 3.0 or Swagger v2 API specification. The specification is located at main/resources/static/api.yaml
.
Clone this repo
./gradlew build
./gradlew run
## show lint errors
./gradlew lintKotlin
## Attempt to auto fix lint errors
./gradlew formatKotlin
./gradlew test
./gradlew clean distZip
Output artifact located at build/distributions
or unpacked
./gradlew clean distZip unzip
Output artifact located at build/unpacked/dist
Create an unpacked dist. See the Dist section above. Then run it
cp build/unpacked/dist $HOME/kotlin-swagger-spring-functional-1.0.0/bin/kotlin-swagger-spring-functional
Run the app or run the standalone dist, then:
curl http://localhost:8080/api/users
POST to /users
with a valid request body
curl -X POST http://localhost:8080/api/users -H "Content-Type: application/json" -d '{ "firstname": "carmine", "lastname": "dimascio" }'
result
{
"firstname":"carmine",
"lastname":"dimascio"
}
POST to /users
with an invalid request body i.e. we leave off the required field lastname
curl -X POST http://localhost:8080/api/users -H "Content-Type: application/json" -d '{ "firstname": "carmine" }'
result
{
"errors":[{
"code":"bad_request",
"message":"Object has missing required properties ([\"lastname\"])"}
]}
Navigate to http://localhost:8080
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!