fhttp, functional Http-Api definition in Scala
fhttp is a little proof of concept, whether it's possible to define a HTTP-API in a functional manner without binding directly to a framework.
From the definition it should be possible to generate Server and Client implementations without that much boilerplate.
The definition should not have any dependencies to the Server/Client library.
This is a proof of concept. Although it works, expect bugs everywhere. There are no published packages.
How it works
ApiCall instance is made of various transitions, stored in a full typed shapeless
The Framework Implementation (at the moment only Akka HTTP) lifts this list into an Encoder / Decoder for HTTP-Requests and their response.
akkaImplementation for Akka HTTP
exampleA simple Example
- Support for path adding/extracting
- Support for Circe JSON, Strings
- Support for async file upload and download
- Support Query Parameters.
- Elegant transport for errors in error responses.
- Better error handling
- Better path handling
- More HTTP Methods instead of
- Support for optional values
- Reporting invalid calls instead of throwing an Exceptions
- Multi part decoding on Akka Server side buffers the request in Memory.