APIs and discovery

Give every client a useful way in.

Serve the same application data through JSON:API and optional GraphQL. Let people browse it, let tools discover it, and keep the access model consistent across both.

  • JSON:API
  • GraphQL
  • OpenAPI

Ready to query

More than create, read, update, delete.

Clients can filter, sort, paginate, aggregate, follow relationships, and request individual resources. Daptin applies its data and permission model before results reach the client.

Frontends get predictable resources

Consistent collection, record, and relationship routes remove one-off endpoint conventions.

Graph-shaped clients get GraphQL

Enable GraphQL when a client needs to select connected fields in one query.

Tools can discover the backend

OpenAPI, metadata routes, and generated JavaScript models make the running application inspectable.

Queries are handled defensively

Ordinary values are parameterized, while supported sorting and aggregation inputs are validated before SQL is built.

Built for real clients

One backend can serve several interface styles.

Web and mobile products

Use predictable resource URLs, sparse client requests, pagination, related records, and JWT authentication from ordinary HTTP libraries.

Data-heavy screens

Filter, sort, group, and aggregate without creating a bespoke reporting handler for each list or dashboard.

Graph-shaped views

Enable GraphQL where one screen benefits from selecting fields across connected records while other clients keep JSON:API.

Tools and generators

Use OpenAPI, runtime metadata, and generated JavaScript models to inspect the server instead of maintaining a separate description by hand.

Limits

Generated does not mean ungoverned.

The same resource and relationship permissions apply when clients query the generated interfaces. Ordinary values are passed as parameters and supported sort or aggregation inputs are validated before query construction.

The latest release does not impose a hard maximum on general REST page[size]. Apply an API-gateway policy for public traffic, use stable pagination order, and test expensive includes and aggregates. GraphQL is optional, and discovery describes the model currently loaded by the running server.

See how API access is decided →

Start with a model. Open a complete API.