テストしたい API を作成しました。そのため、さまざまな機能 (CRUD) を試すための単純なクライアントを構築しています。以下は、正常に動作するプロデューサーを更新するための関数です。ただし、プロデューサーの一部、たとえばアドレス (/producers/8?method=put&address=milkyway)も更新できるようにしたいと考えています。
配列プロデューサーには常に同じ要素 (名前、住所、郵便番号など) が含まれていますが、何かを含む配列内の要素でプロデューサーを更新したいだけです。つまり、たとえば配列内のname要素が空の場合、name を *http_build_query* に含めるべきではありません。name要素のみに何かが含まれている場合は、 name のみを更新する必要があります。
したがって、配列 (もちろん必須であるidを除く) にアドレスが含まれているとしましょう。それだけを *http_build_query* に動的に追加するにはどうすればよいですか?
前もって感謝します!
public function UpdateProducer($producer) {
$url = 'http://localhost/webbteknik2/Labb2/api/v1/producers/ . $producer['id'] . '?method=put';
$data = http_build_query(array(
'name' => $producer['name'],
'address' => $producer['address'],
'zipcode' => $producer['zipcode'],
'town' => $producer['town'],
'url' => $producer['url'],
'imgurl' => $producer['imgurl'],
'latitude' => $producer['latitude'],
'longitude' => $producer['longitude'],
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
...
the rest of the curl code
}
注: これは多くの点で不適切なコーディングであることは承知していますが、私が言ったように、できるだけ早くクライアントを介して CRUD 機能をテストできるようにしたいと考えています。