PHPackages                             briedis/api-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. briedis/api-builder

ActiveLibrary[API Development](/categories/api)

briedis/api-builder
===================

v1.5.0(3y ago)62.1k3PHPPHP &gt;=7.1

Since Mar 22Pushed 3y ago4 watchersCompare

[ Source](https://github.com/briedis/api-builder)[ Packagist](https://packagist.org/packages/briedis/api-builder)[ RSS](/packages/briedis-api-builder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (14)Used By (0)

api-builder for Laravel
=======================

[](#api-builder-for-laravel)

[![Build passes?](https://camo.githubusercontent.com/ac9004ac1117c5e2074dc4850e88b7aed090e4727490725a6181728c4356a5e4/68747470733a2f2f7472617669732d63692e6f72672f627269656469732f6170692d6275696c6465722e737667)](https://travis-ci.org/briedis/api-builder)[![Latest Stable Version](https://camo.githubusercontent.com/1c9a12e4b2345621967a31aaef463db855207e55ac167162c3074106b616e0f7/68747470733a2f2f706f7365722e707567782e6f72672f627269656469732f6170692d6275696c6465722f762f737461626c652e737667)](https://packagist.org/packages/briedis/api-builder)[![Latest Unstable Version](https://camo.githubusercontent.com/46622d014f6376a6a2eee7768962ee586d85b5b196715949ece62109c90c3b91/68747470733a2f2f706f7365722e707567782e6f72672f627269656469732f6170692d6275696c6465722f762f756e737461626c652e737667)](https://packagist.org/packages/briedis/api-builder)[![Master](https://camo.githubusercontent.com/c680b5e56a4cb492cf7fa207bc440628fa96f9d468d9bcae99bcdff8e8a5d34f/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f627269656469732f6170692d6275696c6465722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://packagist.org/packages/briedis/api-builder)

Library helps you build a documentation for your api, and you can even use it to validate request parameters

Usage
-----

[](#usage)

### Laravel 4

[](#laravel-4)

1. Add composer dependency `"briedis/api-builder": "~1.0"` and run `composer update`
2. Add service provider `Briedis\ApiBuilder\ApiBuilderLaravel4ServiceProvider`
3. Publish assets public directory: `php artisan asset:publish briedis/api-builder`

### Laravel 5

[](#laravel-5)

1. Add composer dependency `"briedis/api-builder": "~1.0"` and run `composer update`
2. Add service provider `Briedis\ApiBuilder\ApiBuilderLaravel5ServiceProvider`
3. Publish assets to public directory: `php artisan vendor:publish --force --provider="Briedis\ApiBuilder\ApiBuilderLaravel5ServiceProvider"` (force means that existing files will be overwritten)

Request class
-------------

[](#request-class)

```
use Briedis\ApiBuilder\Method;
use Briedis\ApiBuilder\StructureBuilder;

class ExampleGetUserRequest extends Method{
	const URI = 'user/get';

	const METHOD = 'GET';

	public $title = 'User information';

	public $description = 'Get user by given ids. One or multiple users can be fetched at once';

	public function getRequest(){
		return new GetUsersStructure;
	}

	public function getResponse(){
		return (new StructureBuilder)
			->struct('users', new UserStructure, 'Array with user objects')->multiple();
	}
}
```

Structure classes
-----------------

[](#structure-classes)

```
use Briedis\ApiBuilder\StructureBuilder;
use Briedis\ApiBuilder\StructureInterface;

class GetUsersStructure implements StructureInterface {
	/**
	 * Get the structure object
	 * @return \Briedis\ApiBuilder\StructureBuilder
	 */
	public function getStructure(){
		return (new StructureBuilder)
			->int('userId', 'Array of user ids you want to fetch')->multiple()
			->int('offset', 'For paging purposes')->optional()
			->int('count', 'Amount of users to fetch. Defaults to 20')->optional();
	}
}

class UserStructure implements StructureInterface{
	/**
	 * Get User structure object
	 * @return StructureBuilder
	 */
	public function getStructure(){
		return (new StructureBuilder('User'))
			->int('id', 'Unique identifier')
			->str('username', 'Nickname that will be used in the system')
			->str('firstName', 'Users first name')
			->str('lastName', 'Users last name')
			->str('gender', 'M - male, F - female')->values(['M', 'F'])->optional()
			->int('signature', 'Provide your favorite quote or something, if you want')->optional()
			->struct('location', new LocationStructure, 'Location object for the user')->optional()
			->int('createdAt', 'Unix timestamp, when user has registered');
	}
}
```

Outputting
----------

[](#outputting)

```
$presenter = new \Briedis\ApiBuilder\Presenter([
	new ExampleGetUserRequest,
	// Add request class instances as needed
]);

$presenter->setDomain('http://example/api/v1'));

echo $presenter->render();
```

TODO
----

[](#todo)

- Automatic route generating

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 95.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~224 days

Recently: every ~487 days

Total

13

Last Release

1383d ago

PHP version history (4 changes)v1.0.0PHP &gt;=5.4.0

v1.2.1PHP &gt;=5.5.0

v1.3.0PHP &gt;=7.0

v1.5.0PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/fadd824ede2520d9c0b693d97374dbeb7f9a6e860a31325b66c4a68d04af8ed8?d=identicon)[briedis](/maintainers/briedis)

---

Top Contributors

[![briedis](https://avatars.githubusercontent.com/u/500491?v=4)](https://github.com/briedis "briedis (84 commits)")[![sLIDe5](https://avatars.githubusercontent.com/u/243918?v=4)](https://github.com/sLIDe5 "sLIDe5 (3 commits)")[![talbergs](https://avatars.githubusercontent.com/u/7649265?v=4)](https://github.com/talbergs "talbergs (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/briedis-api-builder/health.svg)

```
[![Health](https://phpackages.com/badges/briedis-api-builder/health.svg)](https://phpackages.com/packages/briedis-api-builder)
```

###  Alternatives

[mollie/laravel-mollie

Mollie API client wrapper for Laravel &amp; Mollie Connect provider for Laravel Socialite

3624.1M28](/packages/mollie-laravel-mollie)[mll-lab/laravel-graphiql

Easily integrate GraphiQL into your Laravel project

683.2M9](/packages/mll-lab-laravel-graphiql)[esign/laravel-conversions-api

A laravel wrapper package around the Facebook Conversions API

69145.4k](/packages/esign-laravel-conversions-api)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[didww/didww-api-3-php-sdk

PHP SDK for DIDWW API 3

1218.2k](/packages/didww-didww-api-3-php-sdk)[surface/laravel-webfinger

A Laravel package to create an ActivityPub webfinger.

113.8k](/packages/surface-laravel-webfinger)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
