reinvanoyen/dry-internal-api

There is no license information available for the latest version (1.0.1) of this package.

An internal API for your DRY applications

1.0.1 2019-10-10 08:13 UTC

This package is auto-updated.

Last update: 2024-11-10 19:25:38 UTC


README

An internal API for your DRY applications

Installation

composer require reinvanoyen/dry-internal-api

Example usage

Route definition
<?php

use Tnt\InternalApi\Facade\Api;

Api::get('posts/', '\\Acme\\Controller\\PostController::index');
Api::post('posts/', '\\Acme\\Controller\\PostController::add');
Api::delete('posts/(?<postId>\d+)/', '\\Acme\\Controller\\PostController::delete');
Controller
<?php

namespace Acme\Controller;

use Tnt\InternalApi\Exception\ApiException;
use Tnt\InternalApi\Http\Request;

class PostController
{
    public static function index(Request $request)
    {
        return [
            [
                'id' => 1,
                'title' => 'My example post',
            ],
            [
                'id' => 2,
                'title' => 'Another example post',
            ],
        ];
    }
    
    public static function add(Request $request)
    {
        // Create your post
    }
    
    public static function delete(Request $request)
    {
        if ($request->data->integer('postId')) {
            // Delete your post
            return true;
        }
        throw new ApiException('post_not_found');
    }
}