Search code examples
resthttpazurehttp-verbs

Doubts on the correctness of Microsoft Azure Multimedia Services REST API


The Azure API claims to be a REST API. I found it while for patterns and sample implementations and verbs in REST, when inspecting it in their (supposedly) REST API reference, they seem to have invented a new verb CancelJob and altering internal state via an HTTP GET

GET
https://media.windows.net/API/CancelJob?jobid='URL-encodedvalue'

This seems to contradict best practices, shall it be implemented with a Jobs resource and DELETE or is it correct to do it that way too?

DELETE
/API/Jobs?jobid='URL-encodedvalue'

Or even?

DELETE
/API/Jobs/jobid

Solution

  • REST has become a buzz word that people use for any API that works over HTTP. This API appears to be what some people would call REST level 1. Level 1 means that you use HTTP as a transport mechanism only. It doesn't respect any of the REST constraints that HTTP is designed for. I don't think it's fair to call these APIs REST at all, but many still do because REST is popular and business/marketing people what to be able to say they have a REST API. I suspect that this is the case with this API because the architect(s) of this API clearly put no effort whatsoever into following REST principles.