xervice / api
2.0.0
2018-08-27 10:16 UTC
Requires
- php: >=7.1.0
- xervice/controller: ^2.0.0
- xervice/core: ^4.0.0
- xervice/data-provider: ^2.0.0
- xervice/security: ^3.0.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-29 04:49:01 UTC
README
安装
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。