package contract

  1. Overview
  2. Docs
On This Page
  1. Current MVP
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

CI opam license: MIT

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 contract

See examples/users_api.ml for a small users API with GET /users/:id and POST /users.

dune exec examples/users_api.exe

Development:

dune build @all
dune runtest
dune fmt

Current limitations:

  • no real HTTP adapter yet
  • no typed client yet
  • no OpenAPI import yet
  • no mock server yet