Eu implementei uma API REST antes e gostei muito. Em geral, quando você implementa o REST sobre SOAP, seu cliente / servidor é mais ortogonal, o que significa que você pode alterar muito mais livremente o servidor sem afetar o (s) cliente (s). Essa ortogonalidade se deve ao uso de uma comunicação mais abstrata e já bem definida via verbos HTTP. Além disso, o uso de hiperlinks incorporados em suas respostas REST facilita a extensão e o crescimento da API relativamente sem problemas. Os clientes devem seguir esses links incorporados para obter novos recursos, como um humano seguiria os links em uma página da Web para 'pesquisar' mais informações.
Com isso dito, alguns colegas de trabalho disseram que precisavam usar SOAP e queixavam-se o tempo todo. Então eu fui pesquisar os dois um pouco mais detalhadamente.
Em geral, o que descobri é que o REST é adequado para aplicativos altamente distribuídos , quando você tem centenas, milhares ou milhões de clientes . Uma razão é a ortogonalidade acima mencionada, outra é o armazenamento em cache que você obtém gratuitamente desde que você está usando HTTP.
O SOAP pode ser o caminho mais rápido quando você precisa de uma API menor para um ou dois clientes rapidamente e não está muito preocupado com a escalabilidade. Também pode se adequar melhor a você se você não tiver uma arquitetura estruturada em torno de recursos , pois pode levar algum tempo para reestruturar seu aplicativo e até conseguir implementar o REST.