0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RESTful APIをドラえもんを使って解説してみた

Posted at

はじめに

初心者向けです。
RESTfulAPIについてざっくりした大枠の理解をする為の記事です。
プログラムの詳細な書き方などは記載しません 各プログラムにおける詳細な書き方はググりましょう。
初心者が備忘録として書いています。
間違っていたらご指摘いただけるとありがたいです。

RESTful APIとは 

結論から先に書くとJavaやPython、Htmlなどの色々な異なる言語間で情報のやりとりをできるようにするための仕組みです。

誤解を恐れずあえて一言で書くとRESTful APIとは どちらも食べる必要のある翻訳こんにゃくです

どういう事でしょうか?
以下AWSからの引用です(https://aws.amazon.com/jp/what-is/restful-api/#:~:text=RESTful%20API%20%E3%81%AF%E3%80%812%20%E3%81%A4%E3%81%AE,%E9%80%9A%E4%BF%A1%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82)

RESTful API は、2 つのコンピュータシステムがインターネットを介して安全に情報を交換するために使用するインターフェイスです。

なるほどわかりそうでわからん😊

ドラえもんを使ってもう少し具体化して考えてみましょう。
今回RESTfulAPIの説明の為にドラえもんにはタイムマシンで原始時代に行ってもらいます。

登場人物はとりあえず二人です。
一人はJavaを話すドラえもんです。
もう一人はPythonを話す原始人です。

JavaではPythonのコードが送られて来てもエラーになるしPythonはJavaのコードが送られてきてもエラーになります。
説明1.jpg

ドラえもんも原始人も
ちょっと何言ってるのか分かんないっす』となりますね。

そこで登場するのが翻訳こんにゃく(RESTful API)です。
原作だと翻訳こんにゃくを食べるとお互いの話す言葉が分かるようになりますね。細かい話ですが、ここで言う翻訳こんにゃくはお互いが持っていないとダメって点が違います

RESTful APIでも同じです。

ドラえもんが話すJavaや原始人が話すPythonから送られてくる情報をRESTを使って翻訳して(例えば、JSON形式に変換して)会話をできるようにします。
説明2.jpg

RESTについて

先程の説明の終わりにRESTを使って翻訳するといいました。
ではRESTとは何でしょうか?
RESTは以下の4つの原則を有する設計思想の事です。

  • 統一インターフェース
  • アドレス可能性
  • 接続性
  • ステートレス性
なるほどわからんって事で説明していきます

統一インターフェース

統一インターフェースとは簡単に言うと通信のやりとりにHTTP通信を使ってJSON形式でデータのやり取りをしましょうねって事です。
先程のドラえもんと原始人の会話はJSON形式に一旦変換されて行われる事になります。

アドレス可能性

ここは悔しいのですが、ドラえもんと原始人の例からは離れ、PC、サーバー間でのやり取りだと考えます。世界中にあるPCとサーバーのどこにアクセスしたらいいかわからないですよね?
そのためにアドレス(URI)をデータにくっつける事でデータを送ったりもらったりできるようにする必要があるのです。

接続性

接続性とは 情報の内部に別の情報のリンクを含める事ができる事を言う。
先程のドラえもんの例だと道を聞いたあとさっきのあの道の話やねんけどなって続けれるようにできるって事ですね😊

ステートレス性

ステートレスとは一回のやり取り完結で行われる。
先程のドラえもんと原始人のやり取りだと道の話を終えた後に別の話をするとき,
一回の会話(セッション)で終わりなので、ドラえもんは道をまた聞かないし、原始人は道順をまた返さないって事ですね😊(もう一回教えてって言えば別ですが)

つまりRESTって情報伝達するときの決まりごとはこうですよねってまとめてるだけの事だったんだ!!

おまけ

APIとは RESTful APIとREST APIって違う?

APIとは

これは名前の通りなのですがApplication Programming Interface つまりアプリ同士をつなぐものって意味ですね
アプリ連携って言ったほうがわかりやすいですね。
RESTful APIとかのWEBを使ったAPI とか PC内部のソフトウェア間での連携も含まれる言い方です。

RESTful APIと REST APIって違う?

違いはないです。

一言でまとめ

  • RESTful API は アプリ間の情報伝達を簡単にしてくれるもの
  • RESTは 情報伝達の決まり事を決めるもの
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?