package contract
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=22bb7430b72c2dd9c141679cc76c0ea5
sha512=d8e8687fd81b1191158ec6d7356887278eb7b7cd60114c4a7f13e52914e9c1ee17eeff37ffa81dd39b4104a553c3e457bacc78907f32ab279130ff5a76b5256f
Description
contract describes REST-style HTTP API contracts as typed OCaml values. The current package provides a pure core for endpoint definitions, parameter and JSON decoding, request and response validation, and OpenAPI 3.0.3 output.
README
contract
contract is an OCaml library for describing HTTP API contracts as typed values. The current code covers a small pure core: endpoint definitions, path matching, scalar and JSON decoding, request and response validation, and OpenAPI output.
Current MVP
The current source tree is a thin vertical slice for REST-style JSON APIs. It has no HTTP server dependency. A request is a value passed to the validator; a response is a status plus optional JSON body checked against the endpoint's declared responses. Path parameters are percent-decoded after route matching.
Released package:
opam install contractSee examples/users_api.ml for a small users API with GET /users/:id and POST /users.
dune exec examples/users_api.exeDevelopment:
dune build @all
dune runtest
dune fmtCurrent limitations:
- no real HTTP adapter yet
- no typed client yet
- no OpenAPI import yet
- no mock server yet