**Description:**
As tool builder I want to read data of all sitelinks of a particular wiki on an item so that I can use them in my tool.
**Acceptance criteria:**
- Following endpoint is developed:
GET /entities/items/{item_id}/sitelinks/{wiki_id}
- Following error cases have to be considered:
<table>
<tr>
<th>
</th>
<th>HTTP response code</th>
<th>response payload</th>
</tr>
<tr>
<td>Item does not exist</td>
<td>404</td>
<td>
`"code": "item-not-found"`
`"message": "Could not find an item with the ID: {item_id}"`
</td>
</tr>
<tr>
<td>Invalid item ID</td>
<td>400</td>
<td>
`"code": "invalid-item-id"`
`"message": "Not a valid item ID: <ITEM_ID>"`
</td>
</tr>
<tr>
<td>Sitelink does not exist for wiki</td>
<td>404</td>
<td>
`"code": "Sitelink does not exist"`
`"message": "No sitelinks found for the ID: {item_id} for the wiki {wiki_id}"`
</td>
</tr>
<tr>
<td>Invalid wiki ID</td>
<td>400</td>
<td>
`"code": "invalid-wiki-id"`
`"message": "Not a valid wiki ID: <WIKI_ID>"`
`"context": { "item-id": "<WIKI_ID>" }`
</td>
</tr>
</table>
**Notes:**
- Handle HTTP conditional request headers as in GET /entities/items/{item_id}/statements
- Handle user authentication/authorization like in GET /entities/items/{item_id}/statements
- Items that have been redirected should be handled like GET /entities/items/labels/en
**Possibly relevant pointers:**
- Suggestion in 2020 Wikibase REST API proposal: https://wmde.github.io/wikibase-rest-api-proposal/
- How Wikibase Action API handles this: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q42&props=sitelinks
**Task breakdown notes**
* add `GET /entities/items/{item_id}/sitelinks/{wiki_id}` to OAS
* create SiteLinkRetriever interface and implementation
* interface method signature `SiteLinkRetriever::getSiteLink( ItemId $id, string $siteId ): SiteLink`
* using `SiteLinkLookup` and `SiteLinksReadModelConverter`
* happy path
* validation
* create a site id request validator. `SiteList::getGlobalIdentifiers()` might be a good place to get the list of valid sites from
* item existence check and redirect handling
* respond 404 if the site link for the requested site does not exist
* middlewares + e2e tests and RouteHandlersTest
* spec tests
* mark ready for prod
Questions for PM:
* Should the URL parameter `wiki_id` be called `site_id`, given it's a **site**link we're looking up? If yes, we should also change the error messages. It is called `site` in the action API.