As a developer experimenting with the Wikidata API, I don’t want real, non-sandbox items to be edited when testing the examples in the API Sandbox.
Problem:
The examples for several Wikibase API modules – wbeditentity, wbcreateclaim, wbsetlabel, etc. – use Douglas Adams (Q42) as an example Item. They should default to a safer item instead, such as the Wikidata Sandbox (Q4115189).
Example:
This edit was made via the API examples (source).
Acceptance criteria:
- The examples for API modules that edit items (git grep needsToken repo/includes/Api/) use some example Item, by default Q999999999.
- Examples on Wikidata use Q4115189 as an example Item.
- Documentation incl. release notes is adjusted for 3rd-party Wikibase installs to say that this new config option exists.
Previous deliberation, left for the curious reader
Open questions:
- I’m assuming that this will result in some new configuration variable, $wgWBRepoSettings['sandboxEntityId'] or whatever, that’s used in the various getExamplesMessages() methods. However, the text of the example is an interface message which currently references the Q42 ID directly. Can we somehow inject the real entity ID into the messages, or do we need to rephrase them to say something vague like “edit an example item”?
- Answer: Lucas says we can inject the ID into the message.
- Assuming the ID is configurable, what’s the default for other Wikibase installations? Still Q42? Q1? Q999999999?
- Answer: Let's go with Q999999999.
- Some API modules also use property IDs – some of them don’t exist (P1, P2), some do (P212), some don’t yet but eventually will (P9001 to P9004). Do we want to do anything about those or is that a separate issue?
- Answer: Let's leave it for now.