Wings is a simple http server for building micro-services using C++ and Swagger (OpenAPI).
The project consists of three phases:
- Code Generation: You use the WingsGen program to read your Swagger (OpenAPI) file and generate all the boilerplate code necessary to handle http requests, validate the input, and respond correctly.
- WingsCore: This is the general purpose http service.
- Your Code: Given some boilerplate hooks generated by the WingsGen, you implement the handlers and whatever else you need to do.
The benefits, you never have to think about parsing urls, request bodies or JSON. This is all done automatically for you, provided that your Swagger spec is sufficiently detailed.
Principles
- Wings favors simplicity over extensibility. JSON is the only supported request and response type.
- Wings favors simplicity over request/response performance. It is assumed that you are writing your service in C++ because you have some heavy processing to do, and that HTTP request parsing and response parsing are going to be trivial in you performance profile.
- Wings favors build simplicity, including everything you need when you clone the repo. Boost is not allowed. Cmake finders are not allowed. All the source-code should exist upon cloning the repository.