Один вопрос с этим какие-либо URI в API могут реагировать с различными типами носителей. Очень часто разные конечные точки API возвращают разные типы контента.
Вы можете использовать несколько запросов подстановочных знаков для проверки на предмет поддержки.
Вы можете начать с Accept: */*
, а затем application/*
text/*
*/json
*/xml
и т.д. Вы бы получить не исчерпывающий список, но вы получите большие одни и предпочтительные из них.
Есть и другие странные краевые случаи. Например, OData позволяет указать параметр $ format в URL для определения типа ответа. Это переопределяет заголовок accept. Таким образом, каждый формат - это собственный URI.
Было бы здорово, если бы API-интерфейсы больше использовали альтернативную ссылку (http://www.w3.org/TR/html5/links.html#rel-alternate), я думаю, что это было бы наиболее подходящим. Это в сочетании с атрибутом типа ссылки позволит вам узнать все форматы для любого ресурса, который вы извлекаете. Опять же, это будет специфично для каждого URI.
Интересно, знаете ли вы о каком-либо примере, который делает это через ОПЦИИ или через конкретный ресурс? –