2016-05-16 6 views
2

PHP(Webサービス)上でAPIを作成しようとしていますが、ほとんどのリクエストはアイテムのリストを取得することです。自分自身のフィールドや多分他のオブジェクト、apiは、さまざまなproyectsに使用されるすべての情報が必要なので、私はJSONまたはXMLに必要な構造を取得する柔軟な要求を作成しようとしています。フレキシブルな構造のPHP APIリクエスト/レスポンスjson/xml

私は大規模なURLやea parmのための大きなパーサーを作成せずにリクエストを行う方法を知らない。

どのようにしてウェブリクエストで構造を送信できますか?

実際のリクエスト/応答。

例要求:

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"}}]} 

答えて

1

リクエストのパラメータを作成するか、別の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, 
]); 

これは、従業員のファーストネームと部門名のみを返すことができます。

+0

Thx!POSTはGETではなくGETを使用し、データフィールドを使用して必要な構造を送信します。 –

+0

POSTは何かを投稿したもので、取得していないものです。あなたがそれをDBクエリとして見るなら、SELECT = GET、INSERT = POST、UPDATE = PUT/PATCH、DELETE = DELETE。これらはcURL要求であり、単純なFORMメソッドと混同しないでください。 – Peon

+0

良い点、それを混ぜないでください。 –

関連する問題