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

ActiveLibrary[API Development](/categories/api)

ajangi/php-rest-response
========================

1.1.2(5y ago)1142[2 issues](https://github.com/ajangi/php-rest-response/issues)MITPHPPHP &gt;=7.0.0

Since Feb 17Pushed 5y ago1 watchersCompare

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

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

[![](https://raw.githubusercontent.com/ajangi/ajangi/744acdd11fa62946dc4a2404e8628941f28f3674/man.svg)](https://github.com/ajangi/php-rest-response)

[![Total Downloads](https://camo.githubusercontent.com/0857cde2ceeafbf57cc9a9692f579237957c4e49e3a3699ef665a9f78ebfb759/68747470733a2f2f706f7365722e707567782e6f72672f616a616e67692f7068702d726573742d726573706f6e73652f642f746f74616c2e737667)](https://packagist.org/packages/ajangi/php-rest-response)[![Latest Stable Version](https://camo.githubusercontent.com/04745c576b1164658ac97fa9a8ba9f0374d6d0a2577eea16bdee5c6b946b20ac/68747470733a2f2f706f7365722e707567782e6f72672f616a616e67692f7068702d726573742d726573706f6e73652f762f737461626c652e737667)](https://packagist.org/packages/ajangi/php-rest-response)[![License](https://camo.githubusercontent.com/36e66c58776d2851b5c363d0debd4837ee3c4a5a1a56d09a69ebb97cec6af03b/68747470733a2f2f706f7365722e707567782e6f72672f616a616e67692f7068702d726573742d726573706f6e73652f6c6963656e73652e737667)](https://packagist.org/packages/ajangi/php-rest-response)[![License](https://camo.githubusercontent.com/902b02e4d3ca2250ec6b85865d9bfe9c86888649bb8ada3dd61c868c228b9f85/68747470733a2f2f706f7365722e707567782e6f72672f616a616e67692f7068702d726573742d726573706f6e73652f636f6d706f7365726c6f636b)](https://packagist.org/packages/ajangi/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 IceResponse\IceResponse;
...

public function index(): Response
    {
        $status_code = Response::HTTP_OK;
        $result = IceResponse::SUCCESS_RESPONSE;
        $data = ['users' => "List of users for example"];
        $messages = [];
        $developer_message = '';
        $response = new IceResponse($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 IceResponse\IceResponse;
...

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 IceResponse\IceResponse;
...

public function index(): Response
    {
        $status_code = Response::HTTP_NOT_FOUND;
        $result = IceResponse::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 IceResponse($status_code,$result,$data,$messages,$developer_message);
        return $response->send();
    }
```

```
// or simply use
...
use Symfony\Component\HttpFoundation\Response;
use IceResponse\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
