webentwicklung-frage-antwort-db.com.de

Gewusst wie: Rest-Endpunkt gibt leeres Objekt zurück

Ich möchte einen benutzerdefinierten REST -Endpunkt implementieren, der auch ein leeres Objekt zurückgeben kann. Wenn jedoch ein leeres Objekt zurückgegeben werden soll, wird das vom Rückruf zurückgegebene leere assoziative Array in ein leeres Array umgewandelt.

Wie kann ich den Endpunkt zwingen, das Array in ein Objekt wie in json_encode umzuwandeln, indem ich das Flag JSON_FORCE_OBJECT setze?

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

Lösung gefunden: Durch das Umwandeln des Rückgabewerts in ein Objekt wird sichergestellt, dass bei einem leeren Array ein leeres Objekt auf Anforderung von REST zurückgegeben wird.

In meinem ersten Beispiel würde dieser Code funktionieren:

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