# ⑮12/15(火) 14.1~15.3 JSON/リソース設計 ###### tags:`Webを支える技術` 14章 JSON 読了🎉 ## 14.1~14.4 @harukus - (感想)フィヨルドの課題でRubyを使ってJSONファイルを扱った事を思い出しました。 - @Saki おお、そんな課題があるんですね->Sinatraの課題 - @皐月 なんと。->使用するかは生徒による @皐月 * JSONの話をしているのに、JSONがわからなくなる * オブジェクトは{}で囲われる メンバは,で区切られる メンバの名前と値は、:で区切られる > これはjavascriptの記法だったのか * 冗長性が低い 2021/4/5 追記 * JSONはJavascript Object Notationの略で、データ記述言語 * Javascriptの記法で、データを記述できる点が最大の特徴 * プログラミング言語間で、データを受け渡せます * Webサービスではブラウザがjavascriptを実行できるので相性がいいこと、XMLと比べてデータ表現の冗長性が低いことなどから、Ajax通信におけるデータフォーマットとして活用されています。 * __JSONで用意されているデータ型は6つ__ * オブジェクト * 名前と値の集合 * 名前と値の組をオブジェクトのメンバという * メンバの名前は常に文字列 * メンバの値は数値、オブジェクト、配列など、JSONのデータ型であればなんでも入れられる * 配列 * 文字列 * 数値 * ブーリアン * null * タイムゾーンを扱う場合、toString関数で出力した文字列が利用できる。 * 他のファイル保存形式 * XML形式 * JSON * CSV * どのような理由で、そのデータ形式で保存するのを選んだか * JSONはMap型であり、json形式にするためのライブラリも簡単にインポートできそうだった。 * 今回特にデータ形式の指定はなかったため、json形式を採用した。 など。 * JSONのデコード、エンコード * エンコードは他のデータに変換すること。データの圧縮などを指す場合もある。 * デコードは、エンコードしたデータを元に戻すこと。 @saki - JSONについてはWeb技術の基本のch.4-07にも説明が載ってる - データ構造を表すために使われる - XMLとは違い、データを階層的に並べて構造を表現する - 「データ表現の冗長性が低い」とは?  - [XMLでのやりとりのオーバーヘッドを減らすには?](https://www.atmarkit.co.jp/fxml/askxmlexpert/021overhead/21overhead.html)  - XMLはタグを使って書くがJSONには無い。=冗長性がXMLより低い。 ## 14.5~14.6 @harukus - @皐月 - リンクって大事なんだな〜 - <script></script>で、javascriptを読み込む。 >これはやったことがあるぞ。 - JSONPって、どこで使ってるの...?(追記します) @Saki - 分からない用語が多くてむずかしい。。 - @皐月 めっちょわかります - クロスドメイン通信とは? - [わわわIT用語辞典](https://wa3.i-3-i.info/word15224.html) - IPアドレスは「コンピュータ向けのネットワーク上の住所」 - ドメイン名は「IPアドレスに付けた人間向けの名前」 > XMLHttpRequestではクロスドメイン通信ができませんが、実は代替手段があります。HTMLの<script>要素を用いると、複数のサイトからJavaScriptファイルを読み込めるのです。 - JSONを扱ったことがないので全体的にぴんと来なかった。理解できたらここに後で書き足す ## 15.1~15.3 @harukus - リソース設計とはRailsのルーティングで出てくる`resources`と関係がある、、? - [Railsのresourcesとresourceついて \- Qiita](https://qiita.com/Atsushi_/items/bb22ce67d14ba1abafc5) @皐月 - リソース設計とは何か。URI設計とは違うものか?   @Saki - 15~17章の読み方 > 5章、16章、17章のRESTに関する設計は他の本にはあまりない、おいしいコンテンツです。 一方でRailsを題材にしていない一般的な話なので、読み替えが必要で読むのが難しいかもしれません。 なので、Railsアプリの作り方に慣れてきて、URI設計うまくなりたい、と思ったときが読み時かもしれません。 - URI設計については説明あったけど、リソース設計は初めて知る気がする。 - 設計と一口に言っても、いろんな設計がある。リソース設計/URI設計/オブジェクト指向のクラス設計/データベース設計 > リソースの設計図とは何かと言えば、たとえば、リソースの種類、リソースの表現、リソースの操作方法、リソースとリソースのリンク関係など - > リソース設計にはまだ一般的な設計手法が存在しません。 ❓今もない? ネットで調べたが、リソース設計の方法について具体的な記事は出てこなかったので、今も無いみたい。 - ❓リソースの意味の範囲が広い。「Web上に存在する、名前をもったありとあらゆる情報」。webアプリケーションを開発するにあたってリソースて具体的に何を指すのか? - ->どんなwebアプリケーションうぃ作るかによって、リソースが何かは変わってくる - リソースの設計方法のところで、最初に「Webサービスで提供するデータを特定する」とあるので、まず使うデータを決めて、そのデータをリソースに分ける作業(データをどういう固まりで扱うか決める作業?)をする必要がある。 - **リソースを定義するところから始めるので、どんなwebアプリを作るかによってリソースの内容自体も変わってくる。** ## 次回は15.4~