innmind/rest-server
Framework-agnostic REST server for PHP that exposes domain resources over HTTP with configurable routes, CRUD-style operations, content negotiation, and consistent error handling. Built on Innmind’s HTTP abstractions for embedding APIs into existing applications.
innmind/rest-server is best treated as a reference implementation for hypermedia-style REST APIs (HATEOAS, content negotiation, typed resource representations), not as a library you ship. It supports the decision "should our public API be resource-oriented with discoverable links?" by giving engineers a working, opinionated example to react to.Consider it when:
Maybe/Either, explicit composition) and wants to see how a REST layer is expressed in that style.Look elsewhere when:
For executives (30 seconds): This is a free, MIT-licensed PHP package for building hypermedia REST APIs. It is archived and effectively unused — two stars, no downstream projects — so we are not proposing we build on it. We are proposing a short, low-cost engineering spike to study its design patterns before we commit to an API architecture. Cost: a few engineering days, zero license spend, zero vendor lock-in. Benefit: we avoid discovering API design mistakes after our API is public, which is where the real cost sits.
For engineering leadership: Treat innmind/rest-server as documentation with executable examples, not as a library. Its value is in showing a rigorous, typed approach to resource linking and content negotiation in PHP. The spike output is a design note and a recommendation — adopt the patterns, hand-roll a small internal layer we control, or conclude that Laravel's conventional REST model is good enough. Explicit non-goal: adding it to composer.json for anything customer-facing. The archived status means we would inherit 100% of the maintenance burden, and with zero dependents there is no ecosystem to lean on.
For the engineering team running the spike: Read the source and the tests; reproduce two or three representative endpoints in a throwaway branch. Document what it gets right (typed representations, explicit links, negotiation) and what it costs (functional-PHP fluency, no Laravel integration, no auth/OpenAPI/observability). Come back with a one-page recommendation and a rough effort estimate for the equivalent in our stack. Do not merge it into main.
How can I help you explore Laravel packages today?