web-dev-qa-db-ja.com

How to:エンドポイントが空のオブジェクトを返すようにする

空のオブジェクトも返すことができるカスタムRESTエンドポイントを実装したいです。ただし、空のオブジェクトを返す必要がある場合は、コールバックによって返された空の連想配列は空の配列に変換されます。

json_encodeフラグを設定することによって、JSON_FORCE_OBJECTのようにエンドポイントに強制的に配列をオブジェクトに変換させることができますか?

function rest_cb() {
    return array();  // this will result in the REST response [] but {} is required
}

function on_rest_api_init() {
    register_rest_route('ns/v1', 'empty-object', 'rest_cb');
}
2
felixlinker

解決策を見つけた:戻り値をオブジェクトにキャストすることで、空の配列の場合、RESTリクエストで空のオブジェクトが返されるようになります。

私の最初の例を強化すると、このコードはうまくいくでしょう:

function rest_cb() {
    return (object) array();
}
2
felixlinker