fjarfs / src-service
核心 HTTP 请求,用于 SRC 环境
v0.1.12
2022-12-16 06:46 UTC
Requires
- php: ^7|^8
Requires (Dev)
- guzzlehttp/guzzle: ^6.3|^7.4
- laravel/laravel: ^5.6|^8.0
- laravel/lumen: ^5.8|^8.0
README
SRC 服务 是一个用于在应用程序之间进行 HTTP 请求的包,具有身份验证和安全访问功能
支持的版本
安装方法
-
composer require fjarfs/src-service
Laravel
- 由
Laravel Package Discovery
自动注册
Lumen
- 在
bootstrap/app.php
中注册服务提供者$app->register(Fjarfs\SrcService\SrcServiceProvider::class);
- 由
配置设置
- 创建
config/srcservice.php
文件<?php return [ /* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | | This key is used by the SRC Service and should be set | to a random, 32 character string, otherwise these encrypted strings | will not be safe. Please do this before deploying an application! | */ 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC', /* |-------------------------------------------------------------------------- | Hash |-------------------------------------------------------------------------- | | This key is used by the SRC Service | */ 'hash' => 'sha256', /* |-------------------------------------------------------------------------- | Expire |-------------------------------------------------------------------------- | | The expire time is the number of seconds that the access key should be | considered valid. This security feature keeps access keys short-lived so | they have less time to be guessed. You may change this as needed. | */ 'expire' => 14400, /* |-------------------------------------------------------------------------- | Cache Expire |-------------------------------------------------------------------------- | | The cache expire time is the number of seconds. | */ 'cache_expire' => 600, /* |-------------------------------------------------------------------------- | Default Cache Store |-------------------------------------------------------------------------- | | This option controls the default cache connection that gets used while | using this caching library. This connection is used when another is | not explicitly specified when executing a given caching function. | | Supported: "apc", "array", "database", "file", "memcached", "redis" | */ 'cache_driver' => env('CACHE_DRIVER', 'file') ];
- 注册配置文件
Laravel
- 自动注册
Lumen
- 在
app/bootstrap.php
中注册配置文件$app->configure('srcservice');
中间件设置
- 确保每个服务间请求都使用
service
中间件Laravel
- 在
app/Http/Kernel.php
中注册中间件服务/** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ 'service' => \Fjarfs\SrcService\Middleware\Accesskey::class, ];
Lumen
- 在
app/bootstrap.php
中注册中间件服务$app->routeMiddleware([ 'service' => Fjarfs\SrcService\Middleware\Accesskey::class, ]);
- 在
- 示例:在
controller
文件中使用中间件/** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('service'); }
服务设置
- 在路径
app/Libraries/Services
下创建文件夹 - 创建
UserService.php
文件<?php namespace App\Libraries\Services; use Fjarfs\SrcService\Service; class UserService extends Service { /** * SERVICE_USER_URI */ protected $baseUri = 'SERVICE_USER_URI'; /** * Available URL */ private const USER_BY_ID = 'api/v1/user/service/by-user-id'; }
- 创建
AuthService.php
文件<?php namespace App\Libraries\Services; use Fjarfs\SrcService\Service; class AuthService extends Service { /** * SERVICE_USER_URI */ protected $baseUri = 'SERVICE_AUTH_URI'; }
- 在 .env 中添加
SERVICE_USER_URI
,并设置每个服务的 URISERVICE_USER_URI=http:// SERVICE_AUTH_URI=http://
使用方法
- 如何请求用户服务 /
UserService
use App\Libraries\Services\UserService; use Fjarfs\SrcService\Exception as ServiceException; try { $userService = UserService::get(UserService::USER_BY_ID . "/1"); ServiceException::on($userService); $user = $userService->data; } catch (\Exception $e) { $user = null; }