PHPackages                             jeyroik/extas-api - 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. jeyroik/extas-api

ActiveLibrary[API Development](/categories/api)

jeyroik/extas-api
=================

api package

3.0.0(3y ago)04621PHP

Since Jun 23Pushed 3y ago1 watchersCompare

[ Source](https://github.com/jeyroik/extas-api)[ Packagist](https://packagist.org/packages/jeyroik/extas-api)[ RSS](/packages/jeyroik-extas-api/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (10)Dependencies (9)Versions (21)Used By (1)

[![tests](https://github.com/jeyroik/extas-api/workflows/PHP%20Composer/badge.svg?branch=master&event=push)](https://github.com/jeyroik/extas-api/workflows/PHP%20Composer/badge.svg?branch=master&event=push)[![codecov.io](https://camo.githubusercontent.com/bf27391cfb79f37d07cc9674bee5ac4f16a8d1ec1d6394e56a3f7efcfd8f2fcb/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d6170692f636f7665726167652e7376673f6272616e63683d6d6173746572)](https://camo.githubusercontent.com/bf27391cfb79f37d07cc9674bee5ac4f16a8d1ec1d6394e56a3f7efcfd8f2fcb/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d6170692f636f7665726167652e7376673f6272616e63683d6d6173746572)[![PHPStan Enabled](https://camo.githubusercontent.com/441b5874ce4df0a2defc892979c96c46889b69cb32119d04f0b48626349f8bc9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d656e61626c65642d627269676874677265656e2e7376673f7374796c653d666c6174)](https://github.com/phpstan/phpstan)[![](https://camo.githubusercontent.com/16b91f03f0f5df9b13c0f31373a54fd07b00605b955db2ba61be84c58698abaa/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f31333633613863643336646432323939303739332f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/jeyroik/extas-api/maintainability)[![Extas Installer v3](https://camo.githubusercontent.com/575456fdcbc008aced659f9a4e9830e9e08693928ce8752e6cdef2a3c6706524/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f696e7374616c6c65722d76342d677265656e)](https://github.com/jeyroik/extas-installer/ "Extas Installer v3")[![Latest Stable Version](https://camo.githubusercontent.com/d7b881326b0f3f44ecb46a869b6d797ea855a89c44bb24a7fa30ecd4fe998873/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d6170692f76)](//packagist.org/packages/jeyroik/extas-q-crawlers)[![Total Downloads](https://camo.githubusercontent.com/e5f933667d2c47241b4297429fd218a22d9dd6ff46a26972611e283360399738/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d6170692f646f776e6c6f616473)](//packagist.org/packages/jeyroik/extas-q-crawlers)[![Dependents](https://camo.githubusercontent.com/d4e6bb0663866808d33b41c60ecec3e1473586392d2453e5293d1c1f64d6c367/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d6170692f646570656e64656e7473)](//packagist.org/packages/jeyroik/extas-q-crawlers)

Description
===========

[](#description)

Api for extas.

Using
=====

[](#using)

- `php -S 0.0.0.0:8080 -t vendor/jeyroik/extas-api/public`.
- You can add your own routes with a plugin by stage `extas.api.app.init` (see `src/interfaces/extensions/IStageApiAppInit` for details).

Plugin example:

```
use extas\components\plugins\Plugin;
use extas\interfaces\stages\IStageApiAppInit;
use Slim\App;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;

class PluginOwnRoute extends Plugin implements IStageApiAppInit
{
    /**
     * @param App $app
     */
    public function __invoke(App &$app): void
    {
        $app->post(// post/get/delete/put/patch/any/
            '/my/route',
            function (RequestInterface $request, ResponseInterface $response, array $args) {
                // dispatching
            }
        );
    }
}
```

Using routes
------------

[](#using-routes)

//extas.app.storage.json

```
{
    "plugins": [
        {
            "class": "\\extas\\components\\plugins\\PluginRoutes",
            "stage": "extas.api.app.init"
        }
    ]
}
```

//extas.app.json

```
{
    "routes": [
        {
            "name": "/json/v1/my-items",
            "title": "Items list",
            "description": "My items list",
            "method": "get",
            "class": "\\some\\routes\\ClassName"
        }
    ]
}
```

// ClassName.php - route dispatcher class

```
