webアプリケーションを開発するときにメソッドを呼び出したら基本Jsonを変えると思いますが、中にはHTMLだったりVueなどのテンプレートを返すアプリケーションもあります。
HTMLやVueを返すアプリケーションもREST APIなのでしょうか?
また、Jsonを返すアプリケーションと区別するための名称等はありますか?
HTMLやVueを返すのはJsonを返すのに比べてメリット等はあるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
RESTは一つのアーキテクチャスタイル、言い換えれば設計方針のようなものです。HTTP/HTTPSでJSONでやり取りされるものに限定されませんし、それこそWeb以外でもその設計方針は使えます。ただ、よく使われるのはWebに関してで、RESTを採用したWebアプリケーションをRESTfulなWebアプリケーション(RESTful Web Application)と呼ばれます。
ここら少しややこしくなります。APIというのは、アプリケーション間でやり取りするための規約のようなもので、JSONなんかに限定されていないものではありません。しかし、WebにおいてAPI(しばしばWeb APIやHTTP APIと呼ばれます、一般的なAPIとの区別のためここではWeb APIとします※)と言った場合、JSONやXML等のプログラムからは扱いやすいが、ブラウザが直接その視覚的な表現に表すことができないデータ形式でのやり取りを表します。それらの最大の特徴は具体的な視覚的な表現がなく、データまたはメッセージのみで構成されていると言うことです。そのため、具体的な視覚的表現が含まれるようなHTMLやVueテンプレートを返す場合、Web APIと呼ばれることは少ないです。しかし、広い意味では、HTMLやVueも(JavaScriptと共に)ブラウザが規約に基づき解釈し、ディスプレイ上に表現するので、一種のAPIと考えてもおかしくないと思われます。
※ ブラウザで使用できるWeb関連のAPI全般をWeb APIと言ったり、Amaznoのサービスの一つにHTTP APIと言うのがあったりします(それとは別にREST APIというのもある)ので、ご注意ください。
ということで、WebアプリケーションにおいてREST APIと呼ばれた場合、RESTの原則に従ってJSONやXML等を返すようなものとしても良いと思います。ただし、バズワードに近い言葉ですので、厳密な定義はないと思います。なお、HTMLを返す場合でもRESTfulなWebアプリケーションである場合があることに注意してください。この場合は単にWeb APIでは無いと言うことだけに過ぎません。逆に、Web APIであっても、RESTfulでなければ、REST APIとは呼ばれないことにも注意してください。
以上を踏まえて、一問一答していきます。
HTMLやVueを返すアプリケーションもREST APIなのでしょうか?
RESTfulな場合もありますが、Web APIではないので、REST APIと呼ぶにはいささか語弊があると思われます。
また、Jsonを返すアプリケーションと区別するための名称等はありますか?
Web世界においては、HTMLを返す場合の方が一般的で、名称はたぶんありありません。敢えて言えば、通常、デフォルト、レガシーとかでしょう。逆に、JSONやXML等を返す場合は、上記で述べたようにWeb APIと呼ばれます。Web APIのみで構成されているようなWebアプリケーションの事を、Rails等はAPI専用アプリケーション(API-only aplication)と呼んでいるようですし、他にも日本語圏ではAPIモードという表現もしばしば見られます(英語圏でもAPI modeと言われているかは不明です)。
HTMLやVueを返すのはJsonを返すのに比べてメリット等はあるのでしょうか?
ブラウザ(クライアント)側で動的な動作を必要としないのなら、わざわざJavaScriptを使ってJSONのデータを元にHTMLのDOMを生成する必要はありません。それなら、単にHTMLを返した方が、実装は楽でした。
今は色々と道具が揃えられ、ライブラリも充実しているため、クライアントサイド側の大規模な開発も大変楽になりましたが、一昔前はそうでも無かったのです。やりづらいデバッグ、ブラウザ間の違いの把握、使いにくいAPI、重すぎるDOM生成(仮想DOMを使わなかった場合)等、JavaScriptで動的にDOMを構成するのはかなり大変でした。それなら、HTMLはサーバー側で用意して、JavaScriptはちょっとした補助程度として使うことがメインでした。そういう意味では楽でした。
現在は、Webアプリケーションに求められる動的なレベルが際限なく上がってきており、また、SPAという考え方も出てきました。その場合、初めからJavaScriptでDOMを構成した方がシンプルかつ動的なWebページを構成できます。React、Vue、Angularといったライブラリが発達してきたこともあります。そうなってくると、バックグラウンド側はデータ処理だけに専念し、WebAPIを通じてやり取りした方がよいとなってきました。巨大化していくWebアプリケーション開発において、フロントエンドとバックエンドを分離できるというのも一つの利点です。
じゃあ、Web APIにすることが一択なのかというとそうでもありません。いくら道具が揃っていても、JavaScriptはそれなりに大変なのです。たとえば、記事をリスト表示するだけなら、HTMLを用意した方が工数が少ないです。つまりは、作るアプリケーションの規模、想定している動作、開発者の技術レベルを考えて選択すべきであり、流行っているからと言って飛びつくのは危険だと言うことです。
なお、Vueを返すというのはVueテンプレートを返すという意味だと思いますが、Vueをクライアント側で動くPHPのように使いたいという発想だと思われますので、ちょっと私には理解できません。
投稿2020/06/14 01:19
総合スコア21739
0
RESTful APIのfulじゃないものをREST APIと思ってください
それを踏まえて
HTMLやVueを返すのはJsonを返すのに比べてメリット等はあるのでしょうか?
返すという点に絞り、さらに情報を取得する処理に限ると、ブラウザ側での処理がhtmlを書く以外不要です。vueはまた話が別なんでおいときます。
jsonで返す場合だとjavascriptでの処理がし易いので画面を更新する事無く表示内容を更新出来ますが、javascriptで処理をしない限りはただのjson形式の文字列が表示されるだけです。
メソッドを呼び出したら基本Jsonを変えると思いますが
質問者の環境における基本だと思うので、身の回りの人に確認してください。
こちらの環境では特に基本ではありません。
投稿2020/06/13 23:32
総合スコア6426
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/14 14:39