razesoldier/esi-sdk-gf
Composer 安装命令:
composer require razesoldier/esi-sdk-gf
包简介
A SDK that used to access ESI of Serenity server
关键字:
README 文档
README
用于访问晨曦服务器ESI的SDK
安装
composer require razesolder/esi-sdk-gf
兼容性
本库设计在PHP 7.4和8.0版本上运行
功能
- 提供一个访问令牌获取器
- ESI各种API和对应的结果模型类
使用
ESI分页
有些接口可以分页。你可以通过检查API实现类有没有实现Pageable接口来判断支不支持分页。
在调用ESI后使用$api->getMaxPages()获得总页数。在调用ESI前使用$api->setPage(2)设置此次请求的页数。
例如:
use RazeSoldier\SerenityEsi\Api\Assets\CharacterAssets; $request = CharacterAssets::latest(1000); $request->setAccessToken('xxx'); $request->get(); $maxPage = $request->getMaxPages(); // int(5) 获得总页数 $otherRequest = CharacterAssets::latest(1000); $otherRequest->setAccessToken('xxx'); $otherRequest->setPage(4); // 设置页数
使用访问令牌获取器
本库提供了一个访问令牌获取器用来根据刷新令牌和Scope来查询访问令牌
例如:
use RazeSoldier\SerenityEsi\Api\Login\AccessTokenGetter; $refreshToken = 'aaabbbccc'; $scopes = ['esi-characters.read_contacts.v1']; $getter = AccessTokenGetter::newInstance($refreshToken, $scopes); $model = $getter->get(); // AccessTokenGetter::get()返回一个AccessToken模型对象 var_dump($model->refresh_token); // string('aaabbbccc') var_dump($model->access_token); // string('adadcaeaxz1')
使用ETag来检查HTTP缓存
本库允许你选择使用或不使用ETag来检查HTTP缓存。
如果你选择使用ETag来检查HTTP缓存,本库提供了EsiApi::getETag()方法
来获得调用一个ESI后,其响应的etag值。你可以在后续请求里,通过EsiBase::setETag()方法
在该次请求里使用你在上一个请求获得的etag值。
调用EsiApi::get()后,你可以通过EsiBase::resourceIsNotModified()来检查服务器的资源是否变更;
如果返回TRUE,说明资源未变更,反之亦然。
注意:你应该在你的程序里负责编写数据缓存逻辑,本库没有提供数据缓存服务,只提供检查HTTP缓存的功能。
(在使用EsiBase::setETag()方法后的请求里,如果资源未变更,get()将返回一个NULL值)
例如:
use RazeSoldier\SerenityEsi\Api\Character\CharacterPublicInformation; $request = CharacterPublicInformation::latest(1000); $request->get(); $etag = $request->getETag(); // 必须在调用get()后调用getETag() $otherRequest = CharacterPublicInformation::latest(1000); $otherRequest->setETag($etag); // 在get()前调用setETag()才会在本次请求检查HTTP缓存 $resp = $otherRequest->get(); var_dump($resp); // NULL var_dump($otherRequest->resourceIsNotModified()); // true
ESI错误速率限制
ESI没有速率限制,但有错误速率限制。即在某个窗口期内失败的查询达到某个阀值就会触发,触发后所有的ESI端口会返回420响应。 参见 1 和 2
对于国服ESI,错误速率限制为每分钟50次。欧服ESI为每分钟100次。
你可以在调用API后($api->get())使用$api->getEsiErrorLimitRemain()获得剩余的次数和$api->getEsiErrorLimitReset()距离下次刷新次数还有多久
许可证
该程序是开源的。你可以根据自由软件基金会发布的GNU通用公共许可证版本2(或更高的版本)的条款 重新分发和/或修改它。
分发该程序是希望它会有用,但没有任何保证。甚至没有对适销性或特定用途适用性的暗示保证。
你应该已经与该程序一起收到了GNU通用公共许可证的副本。
架构
(下面列出的类名均在RazeSoldier\SerenityEsi名字空间下)
本库以EsiService为中心,可以从这个核心类使用到本库所有的API。
或者你也可以选择具体的API实现。具体API实现位于RazeSoldier\SerenityEsi\Api名字空间下。
razesoldier/esi-sdk-gf 适用场景与选型建议
razesoldier/esi-sdk-gf 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 684 次下载、GitHub Stars 达 2, 最近一次更新时间为 2021 年 03 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「eveonline」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 razesoldier/esi-sdk-gf 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 razesoldier/esi-sdk-gf 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 razesoldier/esi-sdk-gf 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Eveonline OAuth2 Provider for Laravel Socialite
Comprehensive mining management plugin for SeAT - Track mining activities, manage moon extractions, calculate taxes, and generate detailed reports
EvE Online OAuth 2.0 Client Provider for The PHP League OAuth2-Client
Core management plugin for SeAT - Provides appraisal services, market pricing, and inter-plugin bridge functionality
EvE Online OAuth 2.0 Client Provider for The PHP League OAuth2-Client
An autogenerated ESI Library with docs and tests.
统计信息
- 总下载量: 684
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2021-03-04