PHPackages                             snappdoctor/php-rest-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. snappdoctor/php-rest-response

ActiveLibrary[API Development](/categories/api)

snappdoctor/php-rest-response
=============================

1.1.1(5y ago)05MITPHPPHP &gt;=7.0.0

Since Feb 17Pushed 5y agoCompare

[ Source](https://github.com/SnappDoctor/php-rest-response)[ Packagist](https://packagist.org/packages/snappdoctor/php-rest-response)[ RSS](/packages/snappdoctor-php-rest-response/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

[![](https://camo.githubusercontent.com/fb030b75f9fffcdeddc0ca433ad233ed042c87abbc2d0af94943ba0e25361c2c/68747470733a2f2f736e6170702e646f63746f722f7374617469632f6d656469612f736e61705f6865616465722e38316464613737372e706e67)](https://snapp.doctor)

[![Total Downloads](https://camo.githubusercontent.com/6425f3e5fe21046a210e037ffc3bf6032a5ec5e6b74efbc1dd7c7daa28e07247/68747470733a2f2f706f7365722e707567782e6f72672f736e617070646f63746f722f7068702d726573742d726573706f6e73652f642f746f74616c2e737667)](https://packagist.org/packages/snappdoctor/php-rest-response)[![Latest Stable Version](https://camo.githubusercontent.com/fc42e1db96eab6998d1b121c0ff8c6d501acec74286f63ab3f67854655423346/68747470733a2f2f706f7365722e707567782e6f72672f736e617070646f63746f722f7068702d726573742d726573706f6e73652f762f737461626c652e737667)](https://packagist.org/packages/snappdoctor/php-rest-response)[![License](https://camo.githubusercontent.com/410db363db2c99bc4ba504bcadb7f870c30f4052a1d4a382d89b0c9a04283f07/68747470733a2f2f706f7365722e707567782e6f72672f736e617070646f63746f722f7068702d726573742d726573706f6e73652f6c6963656e73652e737667)](https://packagist.org/packages/snappdoctor/php-rest-response)[![License](https://camo.githubusercontent.com/43e4d71b454d7130ad31ea7eeb3b77ceec7d498bdb09eeadf5839e2bc9bcbae1/68747470733a2f2f706f7365722e707567782e6f72672f736e617070646f63746f722f7068702d726573742d726573706f6e73652f636f6d706f7365726c6f636b)](https://packagist.org/packages/snappdoctor/php-rest-response)

PHP-REST-RESPONSE
=================

[](#php-rest-response)

A PHP standard response structure to unify responses between microservices.

### Requirements

[](#requirements)

- minimum php version : 7.0.0

### Installation

[](#installation)

```
composer require ajangi/php-rest-response
```

### Hot to use?

[](#hot-to-use)

#### Success Response Sample

[](#success-response-sample)

```
...
use Symfony\Component\HttpFoundation\Response;
use DrResponse\DrResponse;
...

public function index(): Response
    {
        $status_code = Response::HTTP_OK;
        $result = DrResponse::SUCCESS_RESPONSE;
        $data = ['users' => "List of users for example"];
        $messages = [];
        $developer_message = '';
        $response = new DrResponse($status_code,$result,$data,$messages,$developer_message);
        return $response->send();
    }
```

The above code simply returens

```
{
    "status_code": 200,
    "result": "SUCCESS",
    "developer_message": "",
    "messages": [],
    "data": {
        "users": "List of users for example"
    }
}
```

Or you can simply use

```
...
use Symfony\Component\HttpFoundation\Response;
use DrResponse\DrResponse;
...

public function index(): Response
    {
        return (new SuccessResponse())->send();
    }
```

to get

```
{
    "status_code": 200,
    "result": "SUCCESS",
    "developer_message": "",
    "messages": [],
    "data": []
}
```

#### Error Response Sample

[](#error-response-sample)

```
...
use Symfony\Component\HttpFoundation\Response;
use DrResponse\DrResponse;
...

public function index(): Response
    {
        $status_code = Response::HTTP_NOT_FOUND;
        $result = DrResponse::ERROR_RESPONSE;
        $data = [];
        $messages = [
            'entity' => ['entity not found!'] // This structure is recommended
        ];
        $developer_message = 'Dear Front-End developer! You may have a typo!';
        $response = new DrResponse($status_code,$result,$data,$messages,$developer_message);
        return $response->send();
    }
```

```
// or simply use
...
use Symfony\Component\HttpFoundation\Response;
use DrResponse\NotFoundErrorResponse;
...

public function index(): Response
    {
        $messages = [
            'entity' => ['entity not found!'] // This structure is recommended
        ];
        $developer_message = 'Dear Front-End developer! You may have a typo!';
        return (new NotFoundErrorResponse($messages, $developer_message))->send();
    }
```

The above code snippets simply returns :

```
{
    "status_code": 404,
    "result": "ERROR",
    "developer_message": "Dear Front-End developer! You may have a typo!",
    "messages": {
        "entity": [
            "entity not found!"
        ]
    },
    "data": []
}
```

#### Extending new Classes

[](#extending-new-classes)

For example assume you want to define a class for 403 Access Denied Response

```
// define a new class like this
