HackerQuest

No app, no life

趣味と実益を兼ねてプログラマをやっている者👨‍💻

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人であるそうです!尊い😂

メリット

  • APIを利用するサービス開発が楽になる
  • スケーラビリティの向上
  • JSONを利用してデータを受け渡し
    • 使用言語が異なるシステム間でも連携を行うことが容易 JSONについて書いた記事なんとなくJSON

デメリット

  • 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)

FUJITSUラーニングメディア

フロントエンド開発者の僕にもやっとわかった!RESTfulの本当の意味

AOPについてのメモ

AOPとは?

Aspect Oriented Programming = アスペクト指向プログラミング

クラスの持つ責務に基づいて、クラス内に本質的な処理だけを記述するために利用する技術です。

本質的な処理以外の、複数のクラスにまたがって記述される処理を横断的(Aspect)関心事と呼びます。

横断的関心事 = 共通処理という考え方でおk

主な横断的関心事は

AOPを導入することによって、本質的な処理と横断的関心ごとを分離して、共通で利用するためのソースコードを記述することができるため、誤った処理を減らし、可読性の良いソースコードにすることができます。

オブジェクト指向では、うまく分離できない横断的関心事を補助機能として利用されるプログラミングパラダイムです。

つまりどうゆうこと?

AOPを使うことによって、

元のソースコードには一切手をくわえずに、 新たな共通処理を追加することができるようになります。

なんとなくJSON

~ お品書き ~

  • JSONってなんぞや?
  • どんな構造
  • JSON の書き方
  • よくある間違い(T T)

  • 扱える値

  • 締め

JSONってなんぞや?

JavaScript Object Notationの略!

Google先生に翻訳してもらうと

JavaScriptオブジェクト表記という意味らしいです。

13日の金曜日に来る人とは違うようです。良かったですね。

JSONの紹介によると

https://www.json.org/json-ja.html

軽量のデータ交換フォーマットです。

人間にとって読み書きが容易で、マシンにとって簡単にパースや生成を行える形式です。

JavaScriptプログラミング言語(ECMA-262標準第3版 1999年12月)の一部をベースに作られています。

JSONWebサービスなどでよく使われています。テキストベースなので様々なプログラミング言語から簡単に扱えるので便利ですね〜

自分もC#でUnityでアプリ開発をしている時に、テキストベースで保存できるUnityのPlayerprefsという機能でJSON形式にしてよく理解しないまま利用していました。

他のデータ形式であるXMLに比べてシンプルで読みやすいです!!!ガチで!

データサイズも小さいよ!

JSONの構造

JSONには二つの構造を基にして記述されます。

  1. 名前 : 値のペア
  2. 値の順序付きリスト

名前 : 値のペアはキーとバリューのように扱われています。

また値の順序付きリストは配列として扱われます。

文字コードUTF-8

JOSNの書き方

{ } この中括弧の中に、ダブルクォーテーション( " " )で囲んだ変数名と値をコロン( : ) で区切って記述します。

{ "name" : "MARIO" }

複数用意したい場合はカンマ( , )で連結します。

{ "name" : "MARIO" , "age" : 26 }

配列を使いたい場合は[ ]を利用します。

{ 
    "name" : "MARIO" , "age" : 26,
    "friends" : ["Luigi", "Kinopio"]
    }

簡単ですね!

よくある間違い(T T)

  • 変数名をダブルクォーテーションで囲っていない
  • ダブルクォーテーションじゃなくてシングルクォーテーション使ってしまう

扱える値

  • 文字列
    • ダブルクォーテーションで囲ったもの
  • 数値
  • null
    • 値が空のも(全て小文字)
  • true , false
    • 論理値(全て小文字)
  • オブジェクト
    • { } 中括弧で囲んだもの
  • 配列

締め

今回は、なんとなくJSONについて触れました。

しかしJSONスキーマとか、いろいろ難しそうなものもありそうで、

JSONの沼は深そうです。

Ryo Tsuzukihashi