RESTful APIってなんぞや
RESTful APIとは
REST原則を基に、構築されたWebシステムのHTTPでの呼び出しインターフェースのこと。
GoogleとかFacebookとかTwitterとかもRESTfulなサービス!
簡単に言うと、
フロントエンドとバックエンドが完全に独立して開発されているシステム
のこと!
いい事
スマホ対応が簡単になるよ!メンテナンス楽になるよ!
フロントエンドがなんでも使えるよ!
RESTとは
REpresentational State Transfer
Webアーキテクチャスタイル
RESTとは、2000年にRoy Fielding氏が提唱した、分散システムにおいて複数のソフトウェアを連携させるのに適した設計原則の集合。また、狭義には、それをWebに適用したソフトウェアの設計様式のこと。一般には後者の意味で用いられることがほとんどである。
引用:e-Words REST
Roy FieldingさんはHTTPプロトコル作成者の1人であるそうです!尊い😂
メリット
デメリット
- REST原則に従ってさえいれば記述の自由度が高いため、実装ルールをしっかりと統一化する必要がある。
REST原則
- アドレス可読性(Addressability URIを介してリソースを端的に指し示せることができる性質を有していること。 すべての情報が一意なURIで表現されるようにすること。
- ステートレス性(Stateless) すべてのHTTPリクエストが完全に分離している性質であること。 セッションなどの状態管理は行われないこと。
- 接続性(Connectability) ある情報に別の情報へのリンクを含めることができること。 そして、リンクを含めることで、別の情報に接続することができること。
- 統一インターフェース(Uniform Interface) 情報の取得・作成・更新・削除といった操作はすべて HTTPメソッドを利用すること。
REST原則から分かるように、RESTはHTTPの技術を効果的に活用し、Web技術との親和性が非常に高いと言う点です。
参考
Qiita RESTful API とは何なのか(Qiita)
RESTful APIとは?(RAKUTEN RAPIDAPI BLOG)
Representational State Transfer(Wikipedia)
RESTについて調べたまとめ(Hatena Blog)
AOPについてのメモ
AOPとは?
Aspect Oriented Programming = アスペクト指向プログラミング
クラスの持つ責務に基づいて、クラス内に本質的な処理だけを記述するために利用する技術です。
本質的な処理以外の、複数のクラスにまたがって記述される処理を横断的(Aspect)関心事
と呼びます。
横断的関心事 = 共通処理という考え方でおk
主な横断的関心事は
- ログ出力
- トランザクション管理
- 例外処理
AOPを導入することによって、本質的な処理と横断的関心ごとを分離して、共通で利用するためのソースコードを記述することができるため、誤った処理を減らし、可読性の良いソースコードにすることができます。
オブジェクト指向では、うまく分離できない横断的関心事を補助機能として利用されるプログラミングパラダイムです。
つまりどうゆうこと?
AOPを使うことによって、
元のソースコードには一切手をくわえずに、 新たな共通処理を追加することができるようになります。
なんとなくJSON
~ お品書き ~
JSONってなんぞや?
JavaScript Object Notationの略!
Google先生に翻訳してもらうと
JavaScriptオブジェクト表記
という意味らしいです。
13日の金曜日に来る人とは違うようです。良かったですね。
JSONの紹介
によると
https://www.json.org/json-ja.html
軽量のデータ交換フォーマットです。
人間にとって読み書きが容易で、マシンにとって簡単にパースや生成を行える形式です。
JavaScriptプログラミング言語(ECMA-262標準第3版 1999年12月)の一部をベースに作られています。
JSONはWebサービスなどでよく使われています。テキストベースなので様々なプログラミング言語から簡単に扱えるので便利ですね〜
自分もC#でUnityでアプリ開発をしている時に、テキストベースで保存できるUnityのPlayerprefsという機能でJSON形式にしてよく理解しないまま利用していました。
他のデータ形式であるXMLに比べてシンプルで読みやすいです!!!ガチで!
データサイズも小さいよ!
JSONの構造
JSONには二つの構造を基にして記述されます。
- 名前 : 値のペア
- 値の順序付きリスト
名前 : 値のペア
はキーとバリューのように扱われています。
また値の順序付きリスト
は配列として扱われます。
文字コードはUTF-8
JOSNの書き方
{ } この中括弧の中に、ダブルクォーテーション( " " )で囲んだ変数名と値をコロン( : ) で区切って記述します。
{ "name" : "MARIO" }
複数用意したい場合はカンマ( , )で連結します。
{ "name" : "MARIO" , "age" : 26 }
配列を使いたい場合は[ ]を利用します。
{ "name" : "MARIO" , "age" : 26, "friends" : ["Luigi", "Kinopio"] }
簡単ですね!
よくある間違い(T T)
- 変数名をダブルクォーテーションで囲っていない
- ダブルクォーテーションじゃなくてシングルクォーテーション使ってしまう
扱える値
- 文字列
- ダブルクォーテーションで囲ったもの
- 数値
- 整数、浮動小数点数
- null
- 値が空のも(全て小文字)
- true , false
- 論理値(全て小文字)
- オブジェクト
- { } 中括弧で囲んだもの
- 配列
- カギカッコ [ ] で囲んだもの
締め
今回は、なんとなくJSONについて触れました。
しかしJSONスキーマとか、いろいろ難しそうなものもありそうで、
JSONの沼は深そうです。