皆様,新年あけましておめでとうございます。今年も昨年の特集に引き続き,2018年のAPI動向を探っていきたいと思います。新年早々の記事なので当たるも八卦,当たらぬも八卦。気軽な気持ちで読んでみてください。Formatに触れない訳にはいかないでしょう。簡単に要点を列挙すると以下のようになります。8259はECMA-404との統合がなされ,今後これらの仕様が足並みを揃えて更新されるようになっていきます。textはUTF-8でエンコードされないといけなくなりました。textはUnicode文字列で構成されなければならなくなりました。仕様が統合されて,相互運用性が高まったものになったと言えるでしょう。SchemaはImplementationsを見てみると分かりますが,広く普及しているのはdraft-04になります。draft-05はdraft-04を整理しただけなので,draft-07へのマイグレーションという意味では事実上draft-04とdraft-06を確認すべきです。どのように進化しているかをdraft-04を起点に見ていきます。Schemaは次の3つの仕様から成り立っています。Schemaの2つに分けて変遷を見ましょう。CoreとValidation04から06には非互換の変更が含まれます。一方で06から07ではリリースノートの冒頭に記述されているとおり,完全に後方互換性が保たれています。04から比較すると検証ルールの記述がより明確にできるようになったことと,$idの取り回しが大幅に変更になった点が大きいと思います。Objectの取り回しです。Methodのこと)ごとに記述だったものが,リソース単位で記述するような変更になっています。ある意味,よりREST色が鮮明になりました。統一インターフェースで表現できる文脈においては,より平易に記述できるになったと言えそうです。06から07は一部のキーワードのリネームにとどまっています。Suiteにもdraft-07が追加されていることから,今後実装が増えてくることが予想されます。Specificationとともに,JSONベースのAPI開発においてのツールチェインとしての中心になるでしょう。APIの中心であり続けてきましたが,近年その融通の利かなさから敬遠する論調も多く見られるようになってきました。様々なポイントがありますが,主要な論点としては以下が挙げられるでしょう。RESTの規約が曖昧かつ周知されておらず,APIの利用者である開発者からみると結局ドキュメントを読んでみないと使い方が分からない。必要な情報を都度取得する必要があり,N+1クエリのような問題が多く発生するため,モバイル時代のAPIとしての要請に応えきれていない。した経緯からポストRESTを探る動きは数年前から進んできています。その代表格に挙げられるのがGraphQLとRPC(例えばgRPC)ではないかと思います。ここではGraphQLを取り上げてみます。GraphQLはFacebookやGitHub,Pinterestなど主要なサービスが採用しているクエリ言語です。具体的にはデータの取得であるqueryか,データの更新であるmutationを用いて,特定のエンドポイントを介してデータにアクセスします。クエリにフォーカスして言えば,RESTよりGraphQLが優れた点として次の項目が挙げられます。余分なフィールドを取得しないようにできる関連するオブジェクトを一回のクエリで取得できるまたクエリだけでなく型システムを持ち,GraphQLサービスの型を独自のスキーマ言語で厳密に記述できます。型が厳密に定義できるため,クエリの検証が容易に可能な点も見過ごせません。簡単な紹介ですが,GraphQLがRESTに取って代わり得るポテンシャルを秘めているのが理解できると思います。APIのサービスプロバイダがGraphQLサービスの実装についてより具体的に挑戦していくことで,多くのサービスがGraphQLをサポートしていけば,APIの利用者である開発者にも身近な存在となって普及が進んでいくのではないでしょうか。過渡期においては公開APIのクエリはGraphQLもサポートしつつ,バックエンドはRESTなどといった構成を取るサービスプロバイダなども出てくるかもしれません。いずれにせよ今後の動きが楽しみです。終わりに今回も2017年に筆者が気になったテーマをいくつかピックアップして見ました。データフォーマットの主流がJSONである流れ自体はそう簡単に変わらないと思われますが,RESTが今後も使われ続けるものかどうかは,サービスプロバイダと開発者それぞれの体験に対して,どれだけ優れたツールチェインが用意されていくかによってトレンドが大きく変わっていくのではないかと感じています。パブリッククラウドの提供するサービスの進化も睨みつつ,2018年もまだまだスタンダードと言える環境が整わないのではないかと思っています。プログラマーの方はこれらの環境整備のために何かしら興味のある分野を見つけてコントリビュートするのも一興ではないでしょうか。Platform全般などの講演・執筆などを行っている。最近は専らホビープログラマで業務で必要なライブラリを気が向いた際に書く程度で,普段はリサーチから提案,設計全般などに取り組んでいる。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。