mimetype - правильный способ сделать это, однако я вижу, где конечный пользователь захочет получить более упрощенный способ доступа к данным в желаемом формате.
Чтобы обеспечить совместимость со стандартами, соответствующими библиотекам и т. Д., Вы должны в конечном итоге определить тип ответа на основе запрошенного mimetype и ответить соответствующим mimetype в заголовках.
Чтобы достичь этого, ничего не нарушая, можно добавить синтаксический анализатор, который проверяет URI, запрошенный для суффикса, который соответствует кортежу определенных суффиксов, на которые может ответить маршрут, если это так, а mimetype не уже указано, измените переданный mimetype, чтобы он стал правильным типом суффикса.
Убедитесь, что окончательное решение основано на предоставленном mimetype, а не на суффиксе.
Таким образом, другие могут взаимодействовать с вашим сервисом RESTful так, как они привыкли, и вы все равно можете поддерживать простоту использования для людей и т. Д.
~ редактировать ~
Вот пример регулярного выражения, которое проверяет, заканчивается ли оно в .js | .html | .xml | .json. Это при условии, что вы указали полный URI.
(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*\.(?:js|html|xml|json))(?:\?([^#]*))?(?:#(.*))?
Вот пример, который легче интерпретировать, но менее надежный
^https?://(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:js|html|xml|json)$
Эти регулярные выражения взяты из rfc2396