HTTPで通信するAPIはRESTで設計するのが定石ですが、利用者から見ると不便な場合があります。 RESTは設計に強い制約を与えるため、多人数で開発するときでも設計の一貫性を確保することができるのが利点です。更に一定のパターンに従っている分、既存のRESTクライアントを使って手軽にAPIを利用した機能を実装できるのも魅力的です。 しかし設計がRESTに従う分、例えばいくつかの処理をまとめてトランザクションとして扱いたい、といった場合に、インターフェースを独自に拡張しなくてはいけない状況に立たされることがあります。そもそもRESTだとAPIの単位が細かすぎて、利用者から見て使いにくい、といったケースもあります。 そういった場合はRPC(Remote Procedure Call)でAPIを設計することを検討してみても良いかも知れません。RPCの中でもJSON-RPCという仕様が比較的実装し
![JSON-RPC 2.0に準拠したAPIをRails4で実装する | mah365](https://cdn-ak-scissors.b.st-hatena.com/image/square/aa53394a22959b48424990b7faa66f2c08e6bb01/height=288;version=1;width=512/https%3A%2F%2Fblog.mah-lab.com%2Fwp-content%2Fuploads%2F2014%2F09%2F20140907.jpg)