Opened 3 years ago
Last modified 3 years ago
#54484 new defect (bug)
REST API returns (empty) array for Meta but Schema has type object
Reported by: | dtrunk90 | Owned by: | |
---|---|---|---|
Milestone: | Awaiting Review | Priority: | normal |
Severity: | normal | Version: | 5.8.2 |
Component: | REST API | Keywords: | |
Focuses: | Cc: |
Description
When checking http://localhost/wp-json/wp/v2/posts (fresh setup) the meta field is an empty array:
[{"id":1,...,"meta":[],...}]
But the schema (localhost/wp-json/wp/v2/posts?_method=OPTIONS) has type definition object:
{ ..., "schema":{ "$schema":"http:\/\/json-schema.org\/draft-04\/schema#", "title":"post", "type":"object", "properties":{ ..., "meta":{ "description":"Metafelder.", "type":"object", "context":[ "view", "edit" ], "properties":[ ] }, ... }, ... }, ... }
Either the schema is wrong and should be array or REST API should not return an empty array
I'm downloading the schema from my local WordPress instance in order to create POJOs and using those with Springs WebClient which results in the following error:
Error: JSON decoding error: Cannot deserialize value of type `com.acme.api.wp.Meta` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `com.acme.api.wp.Meta` from Array value (token `JsonToken.START_ARRAY`) at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.acme.api.wp.Posts["meta"])
Manually changing type from object to array fixes it. But I'm not sure if the schema is wrong or the REST API is returning invalid data.
Change History (2)
Note: See
TracTickets for help on using
tickets.
Still the case for current dev version (5.9)