Как узнать, какие типы контента предлагаются (для согласования содержимого HTTP)?

То, что возвращается при разрешении DOI, зависит от согласования контента. Я просматривал https://citation.crosscite.org/docs.html и вижу, что разные сервисы предлагают разные типы контента.

Для определенного URL я хочу знать все типы контента, которые он может мне дать. Некоторые из них могут быть более полезными, чем те, о которых я знаю (т.е. я не хочу заранее составлять список предпочтений).

Например:

https://doi.org/10.5061/dryad.1r170

Я подумал, что, возможно, ВАРИАНТЫ - это способ сделать это

но это не дало ничего интересного, только о разрешенных методах запроса.

shell> curl  -v -X OPTIONS   http://doi.org/10.5061/dryad.1r170
* Hostname was NOT found in DNS cache
*   Trying 2600:1f14:6cf:c01::d...
*   Trying 54.191.229.235...
* Connected to doi.org (2600:1f14:6cf:c01::d) port 80 (#0)
> OPTIONS /10.5061/dryad.1r170 HTTP/1.1
> User-Agent: curl/7.38.0
> Host: doi.org
> Accept: */*
>
< HTTP/1.1 200 OK
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Allow: GET, HEAD, POST, TRACE, OPTIONS
< Content-Length: 0
< Date: Mon, 29 Jan 2018 07:01:14 GMT
<
* Connection #0 to host doi.org left intact

1 ответ

Я думаю, что такого стандарта пока нет, но заголовок ссылки: https://www.w3.org/wiki/LinkHeader может раскрыть эту информацию.

Но лично я не буду слишком на это полагаться. Например, сервер может начать отправку нового типа контента и все же НЕ выставлять его через этот заголовок.

Возможно, было бы полезно часто проверять заголовки ответа API с помощью ручных или автоматических средств на наличие изменений.

Другие вопросы по тегам