softwarepunt / psinfoodservice-api-client
食品服务Web API (PS-API)中PS的非官方PHP API客户端
v1.1.0
2024-02-06 13:18 UTC
Requires
- php: >=8.2
- ext-curl: *
- ext-simplexml: *
- guzzlehttp/guzzle: ~6.0||~7.0
- guzzlehttp/psr7: ^1.2||~2.0
Requires (Dev)
- phpunit/phpunit: ^9
README
非官方食品服务Web API (PS-API)中PS的PHP API客户端
此库帮助您与PS-API版本6交互。
⚠ 注意 - 功能有限: 此库当前仅支持检索产品信息。欢迎提交其他API功能的PR。 :)
安装
要求
- PHP 8.2+
- 带有扩展:curl, simplexml
- Composer
设置
使用Composer将包添加为项目的依赖项
composer require softwarepunt/psinfoodservice-api-client
使用方法
入门
开始时,包含客户端并设置您的凭证和选项。
🔒 如果您还没有凭证,请先联系PS in foodservice请求。
<?php use SoftwarePunt\PSAPI\Client; require_once "vendor/autoload.php"; $client = new Client(); $client->setUsername("webapi@yourorg.ps"); $client->setPassword("************"); $client->setTimeout(30);
所有实现的API路由都将匹配URL结构,例如
// Example of structure - the code route for "api/Product/Search" call: $client->product()->search();
搜索产品
您可以通过提供参数来搜索产品。您至少必须选择一个“产品集”;例如:所有公共产品。
您通常使用此功能来查找特定产品,例如
use SoftwarePunt\PSAPI\Models\Params\ProductSearchParams; $searchParams = new ProductSearchParams(); $searchParams->ShowAllProductSet = true; $searchParams->ShowSubscribedProductSet = true; // must be set to explicitly include private data $searchParams->FilterOnEan = "1213456789125"; $products = $client->product()->search($searchParams); $product = $products->product[0]; echo $product->summary->name; // PS Citroensnoepje 20g
☝ 此库返回的对象基于API的实际XML响应结构。它们完全类型提示,并在可用的情况下具有docblocks。
开发
生成实体类型
此项目包含一个工具,可以从PS提供的XSD文件生成或更新实体。所有位于 src/Models/Entities
的类都是使用此工具生成的。您可以如下使用它
要使用它,请从项目目录手动运行CLI脚本
php cli/xsdgen.php path/to/PS_XSD.xsd
您可以通过文档页面下载最新的XSD: https://webapi.psinfoodservice.com/V6/prod/Documentation/Xsd