Если под «REST API» вы подразумеваете, что хотите следовать архитектуре REST, то тип используемого носителя определяется функциональностью, которую вы хотите предоставить через REST API. Хотите иметь возможность создавать новые объекты? Запросить список объектов? Редактировать объект? Если это так, то хорошим типом носителя RESTful для использования может быть vnd.collection + json, поскольку он определяет гипертекстовый интерфейс для управления коллекцией объектов json.
Примечание: RESTful API может использовать медиа-тип application / json, но этот медиа-тип не имеет RESTful-интерфейса с гипертекстовой связью, поэтому он будет конечной точкой в изменении состояния.
Также вполне приемлемо следовать архитектуре веб-API, где вызовы HTTP RPC возвращают объекты application / json, а другие вызовы HTTP RPC манипулируют этими объектами, и нет интерфейса с гипертекстовой ссылкой для использования и навигации по изменениям состояния. Но это не ОТДЫХ.
Мне нравится это описание REST (от создателя REST):
REST APIS должен работать с гипертекстом
Другими словами, если двигатель состояния приложения (и, следовательно, API)
не управляется гипертекстом, то он не может быть RESTful и не может
быть API REST. Период.
Кроме того, из обсуждения этого поста приведен пример приложения RESTful: Приложение REST Lost Boys's Spam-E