mennen-online / laravel-response-models
该包的最新版本(2.1.0)没有可用的许可信息。
将 Http JSON 响应转换为标准 JSON 格式
2.1.0
2022-07-23 09:59 UTC
Requires
- php: ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0.0
Requires (Dev)
- orchestra/testbench: ^7.0
README
此包提供了一个基类模型,可以扩展数据模型来映射 HTTP 响应。
它不仅限于 Laravel 的 Http 客户端,因此您可以将其与任何您想要的 JSON 响应一起使用。
安装
您可以通过 composer 安装此包
composer require mennen-online/laravel-response-models
用法
以下是一个如何使用此包创建响应模型的示例
use MennenOnline\LaravelResponseModels\Models\BaseModel; class PersonContact extends BaseModel { protected array $fieldMap = [ 'roles.customer.number' => 'customer_number', 'roles.vendor.number' => 'vendor_number', 'person' => [ 'first_name' => 'person_first_name', 'last_name' => 'person_last_name' ] ]; }
现在您已经为 PersonContact 定义了响应模型
现在我们向 Lexoffice API 发出请求:https://api.lexoffice.io/v1/contacts/2a730f45-8078-3ccc-a2ed-563f18208eff
我们可以使用响应来创建 ResponseModel
use Illuminate\Support\Facades\Http; $response = Http::get('https://api.lexoffice.io/v1/contacts/2a730f45-8078-3ccc-a2ed-563f18208eff'); $personContact = new PersonContact($response->object());
现在我们可以以属性的形式访问顶层属性,其他每个属性作为数组
$personContact->version // 1 $personContact->customer_number // 12345 $personContact->__get('person.first_name') // Verena
等等。
嵌套数组也会自动转换为 snake_case - 例如使用 Arr::get 访问。
特性
受到 Laravel 模型的启发,目前可以
- 定义 getter 和 setter(set{AttributeName}Attribute | get{AttributeName}Attribute)
测试
composer test
许可
MIT 许可证(MIT)。