我正在尝试在PHP(web服务)上创建一个API,几乎所有我需要做的请求都是获取项目列表,这些项目可能有自己的字段或其他对象,该API将用于不同的项目,而不是所有项目都需要相同的信息,因此我试图创建一个灵活的请求,以获取我在json或xml上需要的结构。
如果不为ea-parm创建一个大url或一个大解析器,我不知道如何发出请求。
如何在web上发送结构请求???
实际请求/响应。
请求示例:
Http://myphpapi.php/getEmploees.php
示例响应:
{"employees":[
{"firstName":"John", "lastName":"Doe", "Departament":"1"},
{"firstName":"Anna", "lastName":"Smith", "Departament":"2"},
{"firstName":"Peter", "lastName":"Jones", "Departament":"1"}]}
我想归档的是:
请求示例:
Http://myphpapi.php/getEmploees.php?{employess.firstName,Departament.name}
示例响应:
{"employees":[
{"firstName":"John", "Departament":{"name":"D1"}},
{"firstName":"Anna", "Departament":{"name":"D2"}},
{"firstName":"Peter", "Departament":{"name":"D1"}}]}
只需为请求创建参数(或使用不同的url)。至少所有的API都是这样工作的:
Request url for item:
GET: http://api.project.com/item/{id}
Request url for list:
GET: http://api.project.com/list/
Request parameter for list:
GET: http://api.project.com/list/
DATA: possible_fields:
[
"employees":
[
"first_name",
"last_name",
"departament":
[
"name",
"number",
"floor",
]
],
"bosses"
[
"first_name",
"last_name",
"departament":
[
"name",
"number",
"floor",
]
],
]
并且只返回请求的项目。
$data = [
"employees" => [
"first_name",
"departament" => [
"name"
]
],
];
Guzzle::get('http://api.project.com/list/', [
'headers' => [
'Content-Type' => 'application/json',
],
'json' => $data,
]);
这只能返回员工的名字和部门名称。