The page props table allows us to store information associated with an article. It is limited in size
The Graph and Cite extension store gzipped content in references-1 and graph_specs fields that must be decoded via gzdecode before being useful.
As a side effect of storing these in page props they are accessible via the API.
Surfacing these in the API is a little confusing and arguably not useful.
For example:
http://localhost:8888/w/index.php/Special:ApiSandbox?useformat=desktop#action=query&format=json&prop=pageprops&titles=Selenium_References_test_page&ppprop=references-1
on my local instance gives
\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffdV*JM+V\ufffd\ufffd\ufffdV\ufffd\ufffd\ufffd\ufffdy%JV\ufffd\ufffd:J%\ufffd\ufffd@\ufffdRHjq\ufffd\ufffdPQjQj^r\ufffd\ufffd\ufffdRvj\ufffd\ufffd\ufffdamlm\ufffd\ufffdRYjQqf~\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd,gJ\ufffd\ufffd\ufffd"
This doesn't seem ideal. A few ideas
- Allowing page props to have hints to explain how the client can make use of them
- Allowing handlers in the API that are run before returning them so that the API response returns the page property as JSON for example
- Allow certain page props to be hidden so they cannot be surfaced via the API