xervice/api

2.0.0 2018-08-27 10:16 UTC

This package is auto-updated.

Last update: 2024-09-29 04:49:01 UTC


README

Scrutinizer Code Quality Build Status.svg?branch=master) Code Coverage

安装

composer require xervice/api

配置

如果您想使用安全的API控制器,您必须将内核服务和认证器添加到安全模块中

  • 您必须将 "\Xervice\Api\Business\Plugin\ApiAuthService" 插件添加到内核堆栈中。
  • 您还必须定义您的授权类型并将它们的认证器 (\Xervice\Api\Business\Model\Authenticator\ApiAuthenticator) 添加到安全依赖提供者。

使用

要使用未经认证的API控制器,您可以扩展自 AbstractApiController。

<?php


namespace App\MyModule\Communication\Controller;

use \DataProvider\MyDataDataProvider;
use Symfony\Component\HttpFoundation\Response;
use Xervice\Api\Communication\Controller\AbstractApiController;

class MyApiController extends AbstractApiController
{
    /**
     * @param \DataProvider\MyDataDataProvider $dataProvider
     * @param string $name
     *
     * @return \Symfony\Component\HttpFoundation\Response
     * @throws \Xervice\Api\Exception\ApiException
     */
    public function myRequestAction(MyDataDataProvider $dataProvider, string $name): Response
    {
        $dataProvider = $this->getFacade()->doAnythingWithData($dataProvider);

        return $this->apiResponse($dataProvider);
    }
}

如果您想进行认证,您可以扩展自 AbstractSecureApiController。每个对 SecureController 的调用都会在执行操作之前检查授权。认证数据来自 HTTP_Authorization 标头。

示例

HTTP_Authorization: Token Zm9vOmJhcg==

在这个示例中,它将查找名为“Token”的安全认证器并执行认证。如果失败,它将抛出 AuthorizationException。