explaingit

dingo/api

9,352PHPAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A PHP package for building web APIs on Laravel and Lumen that handles versioning, authentication, rate limiting, and response formatting out of the box, now moved to a new GitHub organization.

Mindmap

mindmap
  root((repo))
    What it does
      Laravel API toolkit
      API scaffolding
    Features
      API versioning
      Rate limiting
      Auth adapters
      Response transformers
    Status
      Unmaintained here
      Moved to new org
    License
      BSD 3-Clause
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add API versioning to a Laravel app so existing clients keep working when you release a new API version.

USE CASE 2

Implement rate limiting on your Laravel API endpoints to protect the server from overload.

USE CASE 3

Use response transformers to control exactly what data your API returns to different types of clients.

Tech stack

PHPLaravelLumen

Getting it running

Difficulty · moderate Time to first run · 30min

This repository is no longer maintained, new development has moved to the api-ecosystem-for-laravel GitHub organization.

Use and redistribute freely for any purpose as long as you keep the copyright notice and license text.

In plain English

Dingo API is a PHP package designed to help developers build web APIs on top of the Laravel and Lumen frameworks. An API (Application Programming Interface) is the layer that lets different software systems communicate with each other, for example when a mobile app sends a request to a server to fetch user data. Dingo provides the scaffolding so you do not have to build that layer from scratch. The package handles several concerns that come up repeatedly when building APIs. Content negotiation means the server can respond in different formats depending on what the client requests. Authentication adapters let you plug in different login or token verification strategies. API versioning allows you to release a new version of your API without breaking older clients that still rely on the previous version. Rate limiting controls how many requests a single client can make in a given time window, which protects your server from overload. Response transformers let you shape the data before it goes back to the caller, and there is built-in error handling to return consistent error messages. The package also supports internal requests, where one part of your application can call another API endpoint without going through the network, and it can generate API Blueprint documentation, which is a structured description of your API's endpoints. Note: the README states that this repository is no longer actively maintained at this location. The project has moved to a different GitHub organization (api-ecosystem-for-laravel), and users are asked to switch to that repository instead. The code and history here remain accessible, but new development happens elsewhere. The package is licensed under the BSD 3-Clause license, which permits broad use and redistribution with minimal restrictions. Documentation is available in the project's wiki.

Copy-paste prompts

Prompt 1
Set up Dingo API in a Laravel project and show me how to define versioned route groups for v1 and v2 of my API.
Prompt 2
Configure JWT authentication with Dingo API in Laravel and show me a protected endpoint that returns the logged-in user's data.
Prompt 3
Add rate limiting to a Dingo API route group in Laravel and show me how to return a friendly error message when the limit is exceeded.
Open on GitHub → Explain another repo

← dingo on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.