package contract
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Typed HTTP API contracts for OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.2.0.tar.gz
md5=22bb7430b72c2dd9c141679cc76c0ea5
sha512=d8e8687fd81b1191158ec6d7356887278eb7b7cd60114c4a7f13e52914e9c1ee17eeff37ffa81dd39b4104a553c3e457bacc78907f32ab279130ff5a76b5256f
doc/README.html
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
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page