PHPackages                             ellipsesynergie/api-response - 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. ellipsesynergie/api-response

ActiveLibrary[API Development](/categories/api)

ellipsesynergie/api-response
============================

Simple package to handle response properly in your API

1.0.0(2y ago)3751.4M—3.2%53[4 issues](https://github.com/ellipsesynergie/api-response/issues)[1 PRs](https://github.com/ellipsesynergie/api-response/pulls)20MITPHPPHP &gt;=8.1

Since Mar 25Pushed 2y ago13 watchersCompare

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

READMEChangelog (10)Dependencies (8)Versions (36)Used By (20)

api-response
============

[](#api-response)

[![Latest Version](https://camo.githubusercontent.com/69ee7652f1d01faa63c4e9fd57c10b7e109e968c2076e41c303eec5bfdca60a9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f656c6c6970736573796e65726769652f6170692d726573706f6e73652e7376673f7374796c653d666c61742d737175617265)](https://github.com/ellipsesynergie/api-response/releases)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Api Response Tests](https://github.com/ellipsesynergie/api-response/actions/workflows/run-test.yml/badge.svg)](https://github.com/ellipsesynergie/api-response/actions/workflows/run-test.yml/badge.svg)[![Total Downloads](https://camo.githubusercontent.com/5919ded370cfb9e05708281590a6ed6369a176cf7ce2f5e7c1bc350c6b648cc0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f656c6c6970736573796e65726769652f6170692d726573706f6e73652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ellipsesynergie/api-response)

Simple package to handle response properly in your API. This package uses [Fractal](https://github.com/thephpleague/fractal)and is based on [Build APIs You Won't Hate](https://leanpub.com/build-apis-you-wont-hate) book.

Install
-------

[](#install)

Via Composer

```
$ composer require ellipsesynergie/api-response
```

Requirements
------------

[](#requirements)

The following versions of PHP are supported by this version:

&gt;= PHP 8.1

### Install in Laravel

[](#install-in-laravel)

Add this following service provider to your `config/app.php` file.

```
EllipseSynergie\ApiResponse\Laravel\ResponseServiceProvider::class
```

### Install in Lumen

[](#install-in-lumen)

Because of the request object change ([see reference](https://laravel-news.com/request-object-changes-in-lumen-5-4)) you can no longer access `Request` object properly in Service provider. To be convenient, we have created a middleware to be used for parsing the `include` parameter.

Register this service provider to your `bootstrap/app.php` file.

```
$app->register('EllipseSynergie\ApiResponse\Laravel\LumenServiceProvider');
```

Register the global middleware `bootstrap/app.php` file.

```
$app->middleware([
    'EllipseSynergie\ApiResponse\Laravel\Middleware\ParseInclude'
]);
```

### Install in your favorite framework or vanilla php

[](#install-in-your-favorite-framework-or-vanilla-php)

This package can be used in *any* framework or vanilla php. You simply need to extend `EllipseSynergie\ApiResponse\AbstractResponse` and implement the `withArray()` method in your custom class. You can take a look at `EllipseSynergie\ApiResponse\Laravel\Response::withArray()` for an example.

You will also need to instantiate the response class with a fractal manager instance.

```
// Instantiate the fractal manager
$manager = new \League\Fractal\Manager;

// Set the request scope if you need embed data
$manager->parseIncludes(explode(',', $_GET['include']));

// Instantiate the response object, replace the class name by your custom class
$response = new \EllipseSynergie\ApiResponse\AbstractResponse($manager);
```

For more options related to the fractal manager, you can take a look at the [official Fractal website](http://fractal.thephpleague.com)

Example inside Laravel or Lumen controller
------------------------------------------

[](#example-inside-laravel-or-lumen-controller)

```
