ethical-jobs / sdk-php
EthicalJobs API 客户端和 SDK
Requires
- php: ~8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- laravel/legacy-factories: ^1.3
- mockery/mockery: ^1.5
- orchestra/testbench: ^7.6
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- dev-master
- v8.0.2
- v8.0.1
- v8.0.0
- v4.x-dev
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.1
- v4.0.0
- v4.0.0-alpha1
- v3.x-dev
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.2
- v3.0.1
- v3.0.0
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.0
- v1.3.1
- v1.3.0
- v1.2.2
- v1.2.1
- v1.1.1
- v1.1.0
- dev-development/v4.1.3-php7.4-dev
- dev-v4.1.3-php74-dev
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
- dev-dependabot/composer/symfony/http-kernel-6.2.6
- dev-8.0.0-dev1
This package is auto-updated.
Last update: 2024-08-31 00:41:18 UTC
README
为了重新发布为单个包,所有当前 EJ 包将在 2021 年中旬下线。
兼容性
v8.*
- Laravel 8 或更高版本,PHP >8.x <9.xv4.*
- Laravel 8 或更高版本,PHP 7.3v3.*
- Laravel 7 或更低版本(可能是 5.6 到 5.9)
安装
composer require ethical-jobs/@ethical-jobs/sdk
对于 Laravel < 5.5.x
,在您的 config/app.php
文件中包含服务提供者和外观 EthicalJobs\SDK\Laravel\ServiceProvider::class
,'EthicalJobs' => EthicalJobs\SDK\Laravel\ApiFacade::class,
。对于 Laravel >= 5.5.x
,该包将自动包含服务提供者和外观。
身份验证
您需要设置 4 个环境变量以启用身份验证
{ "AUTH_CLIENT_ID": "The client id of the oauth grant", "AUTH_CLIENT_SECRET": "The client secret of the oauth grant", "AUTH_SERVICE_USERNAME": "Username or email of the user", "AUTH_SERVICE_PASSWORD": "Base64 encoded password of the user", }
当使用需要身份验证的端点时,您首先需要调用 EthicalJobs::authenticate()
。
发送请求
有许多方法可以访问 API 资源,以下是一些示例
// GET /jobs EthicalJobs::get('/jobs', ['status' => 'APPROVED']); // GET /jobs/drafts EthicalJobs::get('/jobs/drafts', ['status' => 'APPROVED']); // GET /jobs/214 EthicalJobs::get('/jobs/214'); // GET /jobs { status: APPROVED, expired: false } EthicalJobs::resource('jobs')->approved(); // GET /jobs { expired: true } EthicalJobs::resource('jobs')->expired(); // POST /jobs { ... } EthicalJobs::post('/jobs', ['title' => 'React Developer', 'description' => 'We are looking for...']);
响应
响应作为 EthicalJobs\SDK\Collection
返回,该集合扩展了 Illuminate\Support\Collection
。如果没有结果,则返回空集合。此类具有扩展方法以选择嵌套响应项:$collection->entities('jobs');
。此外,还有
测试和模拟
为了轻松模拟 SDK 响应,在 ApiClient
或 EthicalJobs
外观上存在一个响应堆栈辅助函数。这返回一个完全模拟的 ApiClient
实例,您可以将它注入到 Laravel IOC 容器中或直接使用。
为了模拟实际的 SDK 响应,还有在 EthicalJobs\SDK\Testing\ResponseFactory
中可用的最新的模拟 JSON 响应。
// Mocking a set of api calls and their responses $api = ApiClient::mock([ ResponseFactory::response(204, ResponseFactory::jobs()), ResponseFactory::response(201, ResponseFactory::job()), ResponseFactory::response(200, ResponseFactory::user()), ]); // Subsequent calls will return the above responses in order $jobs = $api->get('/jobs'); $job = $api->get('/job/17263'); $user = $api->get('/user/2827');