Anúncio
Anúncio

Mais conteúdo relacionado

Apresentações para você(20)

Similar a Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!(20)

Anúncio

Mais de CData Software Japan(20)

Último(20)

Anúncio

Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!

  1. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Angular でもっとAPIファースト・もっとモダンデザイン なWebアプリケーションを作ろう! インフラジスティックス・ジャパン株式会社 桐生 達嗣 CData Software Japan 合同会社 桑島 義行
  2. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 本日のアジェンダ Agenda • 自己紹介 • APIファースト・モダンデザインなWebアプリケーションとは • 多様化するAPIの現状とAPIエコシステム、APIの在り方 • APIを3ステップでDBから自動生成できる CData API Server • Ignite UI CLI を使ったAngular アプリ構築 • CData API Server + Ignite UI for Angular “Budget App”
  3. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 登壇者自己紹介 Self Introduction 桐生達嗣 (tkiryu@Infragistics.com / @TatsushiKiryu ) ・インフラジスティックス・ジャパン株式会社 テクニカル コンサルティング エンジニア ・専門分野: Web アプリ / フロントエンド開発 桑島義行 (kuwajima@cdata.com / @kuwazzy ) ・CData Software Japan合同会社 テクニカル ディレクター ・専門分野: DB / BI / WebAPI
  4. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. About CData Software Bi-directional Access to Live App, Database, & Web API Data Through Standard Drivers ・CData Software, Inc. / Started: 1994 (/nsoftware) ・Location: Chapel Hill, NC a spin-off of /n software ・CData Japan: 2016/6 (JV with Infoteria) ・20年以上にわたりデータ関連コンポーネントを提供 ・100を超えるデータソースへのデータ接続を標準化 ・APIエコシステムの構築をサポート
  5. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. RDB(SQL) ⇔ Web API 変換のエキスパート Enable real-time data integration with hundreds of applications, databases, and Web APIs Data Drivers API を仮想RDB 化することで使 いやすく API Server APIをノンプログラミングで開発
  6. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 業界最多級100+のデータソース Drivers for NoSQL, Big Data, & SaaS Connectivity CRMおよびマーケティング自動化 会計システム コラボレーションおよびERP オンプレミスおよびクラウドDB ドキュメントおよびファイル形式 ソーシャルネットワーキングネットワーキングおよび認証 電子商取引 その他
  7. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. About INFRAGISTICS z 1989年 創立、米国 本社オフィス 開設 2000年 Windows Forms & ASP.NET 対応製品 販売開始 2006 年 東京オフィス開 設 WPF 対応製品 販売開始 2008年 UX サービス 部門設立 2010年 HTML5/ Javascript 対応製品 販売開始 2012年 iOS 対応製品 販売開始Indigo Studio 販売開 始 2014年 Xamarin & Android 対応 製品 販売開始 2018 年 継続する イノベー ション 2016年 ReportPlus Embedded 提供開始 2017年 プロダクティビティ パック、Angular コンポーネントを 提供開始 ・UI コンポーネント専業で約 30 年間 ・日本法人を設立して 13 年目 ・近年、Angular をはじめとした Web アプリ開発支援ツールに注力
  8. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Angular, Flutter, React, Vue.js, Electron, Node.js, Ionic, Xamarin, UWP, .NET, 近年、乱立するクライアント テクノロジー、フレームワーク テクノロジー、フレームワークの 選択が重要に さらに、開発の前の 「学習」にもコストがかかる
  9. 開発支援ツール Infragistics Ultimate Web、モバイル、デスクトップに対応する UI コントロールと 生産性を向上させる プロダクティビティ ツールを提供 モバイル向け • Ultimate UI for Xamarin • Ultimate UI for iOS • Ultimate UI for Android Web 向け • Ignite UI for Angular • Ignite UI for JavaScript • Ultimate UI for ASP.NET デスクトップ向け • Ultimate UI for Windows Forms • Ultimate UI for WPF デザイン • Indigo Studio • ICONS
  10. 1. UI コントロール 2. プロダクティビティ ツール 3. エンタープライズ サポート コントロール「だけ」ではなく、UI 開発全体を支援 1. 高機能 UI コントロール  グリッド、チャート、スケジュール、ピボット 2. 学習コスト、作業コストを低減する プロダクティビティ ツール  CLI ツール、コンフィギュレーター 3. エンタープライズに対応したサポート、 サービス  製品サポート + 各種開発コンサルティング
  11. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. モダンWebアプリケーションとは?
  12. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Mobile PC クライアントサイド モダン Web アプリとは? データソースサイド RDB ファイル クラウド サービス サーバーサイド これまで: HTML のやり取り モダン: データ(API) でのやり取り コードの再利用性を高めるためバックエンドとクライアントサイドは、疎結合
  13. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Mobile PC クライアントサイド モダン Web アプリとは? データソースサイド RDB ファイル クラウド サービス サーバーサイド これまで: HTML のやり取り モダン: データ(API) でのやり取り コードの再利用性を高めるためバックエンドとクライアントサイドは、疎結合
  14. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. #APIあるある 実録 APIの現実・・・
  15. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. API を使うのに紙文書で申請が必要! #APIあるある ・NDAや申請書、パートナー契約などなど紙文書でのやり取りが必要 ・時には恐ろしい数のヒアリング項目 ・APIを利用するまでに2週間以上時間がかかることも・・・ ・(参考)Salesforce は、開発アカウントはOnline 申請、即API 利用開始
  16. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 仕様書がPDFやExcel ・Word ベース や 神エクセル ・いったいどうやって管理・アップデートする? ・実装とドキュメントは当然乖離 ・中にはドキュメントがCD-ROMで送られてくるところも・・・。 ・コピー&ペーストできない #APIあるある
  17. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Limit が厳しすぎる #APIあるある ・1分間にXX回リクエストまで、等 ・ちょっと連携開発でテストしたら、ロック ・BIするのに全データを取得したいが制限にひっかかってしまい、取得できない (Twitterなどもちろん仕方がないものもある)
  18. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. リソース指向と関数指向がまざってる #APIあるある ・例えばURLが https://XXX.com/getXXX https://XXX.com/findXXX https://XXX.com/users ・詳細検索するときだけ、FindやSearchといったURL
  19. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. リソース名が省略語だらけ #APIあるある 例えば・・・ ・営業案件 Opportunity がOPP 日本語ローマ字略称は覚えづらく、つらい・・・ ・勘定科目マスタ が KKM とか
  20. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. ページングの指定方法が違いすぎる Qiita MoneyForward ページ指定方法 URLパラメータで指定 Page=1 URLパラメータで指定 Page=1 ページ数最大値表示 レスポンスヘッダに記載 Total-Count: 6 レスポンスボディに記載 total_count : 6 1ページあたりの表示件数表記 URLパラメータで指定 per_page=20 URLパラメータで指定 Limit=100 次ページリンク レスポンスボディに記載 Link: <http://qiita.com/api/v2/users?pa ge=1>; rel="first", なし #APIあるある ・同じ会社のAPIでも微妙に違う ・ヘッダに記載していたり、ボディに記載していたり
  21. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 通貨フィールドが「¥」マーク付き #APIあるある ・昔、データ型ってあったのを忘れたのか? ・通貨フィールドが数値型ではなく、円マーク付きで返ってくるので文字列になってしまう 例:var x = “1,000,000”; ・クライアントサイドで通貨マークの調整処理が必要 ・BIツールに取り入れる時には数値変換が必要
  22. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. データを取得したいのにPOST #APIあるある ・例:Bodyで検索条件を指定するから、POSTメソッドでGETする ・基本的にすべてのエンドポイントがPOST仕様だったり
  23. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. エンドポイント一覧がAPIで取得できない #APIあるある ・どのくらいリソースがあるのかわからない ・クライアントサイドで動的な処理ができない ・APIの変更に動的に対応することができない
  24. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. リソースが存在しないのにステータスコード200(正常) #APIあるある • 成功なのに失敗? • リソース名が間違っていたはずなのに200番。404(Not Found)では?
  25. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. サマリデータのみで、明細が取れない #APIあるある • 見積の合計金額は取れるのに、明細が取れない • APIから取得できるデータがそもそもサマリした後のデータで、使用者側でサマリの観点 を変えることができない • ヘッダと明細を一括のリクエストで作成しないといけないAPIもあったり
  26. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. まだまだありそうな予感 皆さまの を募集中! SNS で発信しよう! #APIあるある
  27. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 原因: 「REST はプロトコルではない」から
  28. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. OData • Microsoftが主導となり推進しているプロトコル • HTTPメソッド(GET/POST/PUT/DELETE)でデータの参照更新ができる仕様 • RESTfulな設計パターンを実装 Open API Specification • 略してOAS、旧Swagger • REST APIの記述に関する仕様とAPIをコールするためのコードとドキュメントを自動生成するツール群 • Apache 2.0 License • 2015年に推進団体「Open API Initiative」が設立 • The Linux Foundationの協力のもと、Microsoft/Google/IBM/Paypal/3Scale(Redhat) / Apigee(Google) などにより 結成 REST APIの規格・標準 Standards-based Interfaces
  29. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. モダンWebアプリケーションに求められるAPI 1. メタデータ・スキーマの提供 2. メタデータ・スキーマから自動生成されたドキュメント 3. 規格(リクエスト・レスポンスルール)の統一
  30. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 『たのむ メタデータ・スキーマをくれ。 できれば、動的に』
  31. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. クライアントサイドデータソースサイド API PC Mobile モダンなAPI=クライアントサイドに優しい RDB ファイル クラウド サービス API仕様書から 自動生成
  32. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. モダンAPIを3ステップでDBから自動生成できる CData API Server
  33. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. ノンコーディング、3ステップでAPI 実装 公開するデータソースに接続1 ユーザーの設定とアクセス権限を指定 2 3 公開するデータを選択
  34. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. クライアントサイドデータソースサイド API PC Mobile Demo API Server • バックエンドAPI+Webフロント構成アプリケーション • マルチデバイスアプリケーション
  35. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd.
  36. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. API を活用したモダン Web アプリの構築
  37. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. クライアントサイドデータソースサイド API PC Mobile データはつながった、次はクライアントアプリ(画面)だ! API Server • データを「活かす」アプリケーションを「すばやく」実装
  38. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. モダン Web 向け: Ignite UI for Angular • 約 50 種類のAngular 専用コンポーネント • マテリアルデザイン サポート • 軽量、高速、高機能 • OSS • デュアル ライセンス Angular ロゴ: https://angular.io/presskit
  39. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. • 利用するフレームワークの選択 (Angular, jQuery, React) • 各種コントロールの利用に必要な スクリプト、CSS、HTML の ひな型をプロジェクトに追加 • 独自のカスタムテンプレートを 作成可能 コマンド “2行” でモダン Web アプリ開発を開始 $ npm install igniteui-cli -g $ ig
  40. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Demo Ignite UI CLI を使ったAngular アプリ構築と API サーバーへの接続
  41. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 予実管理 株取引 人事管理 不動産取引 Ignite UI for Angular で作成できる Web アプリ例 • レスポンシブ、マルチデバイス対応モダン Web アプリ • 「見栄えの良さ」を実現
  42. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Demo API サーバー + Ignite UI for Angular “Budget App”
  43. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. 更なる進化: Indigo Design to Code (D2C) Studio • まとめスライド • https://youtu.be/1I9Rl8f07gc
  44. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd.
  45. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. まとめ
  46. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. まとめ • モダン API: 統一された規格、メタデータ、ドキュメントの提供 • API Server ですばやく実現 • モダン Web アプリ: プリミティブなデータのやりとり、クライアントを動的に生成 • Ignite UI for Angular ですばやく実現 開発ツールを有効活用しましょう!
  47. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. お願い • ブースにおいでください! • 製品説明、デモを実施しています! • ノベルティもあるよ! • 「#decode大喜利」 やってます! • 豪華賞品をご提供します
  48. © 2018 CData Software Japan, LLC | © Infragistics Japan Co., Ltd. Thank You!

Notas do Editor

  1. IG
  2. IG/CD <桑島> CData Software Japanの桑島です。
  3. CD <桑島> まずはじめに、CDataSoftwareについてご紹介させていただきます。 CDataSoftwareは、アメリカのノースカロライナ州に本社を構えるグローバル企業です。日本では2016年に活動を開始しております。 20年以上にわたり、データ連携コンポーネントを提供しており、現在、数万社という単位でご利用いただいております。 私たちは、100を超えるクラウドサービスやDBへのデータ接続を標準化することで、APIエコシステムの構築をサポートしている企業です。
  4. CD <桑島> CData Softwareの製品ラインナップはこちらの二つで、一つは、APIを仮想RDB化して使いやくするDataDrivers製品、もう一つは、APIをノンプログラミングで開発できるAPIServerです。
  5. CD これらの製品から接続できるデータソースは業界最多級で、CRMやマーケティングなどのクラウドサービスや、NoSQLを含めデータベースまで多種様々で、私たちはこれらのデータソースのAPIをみて開発やメンテナンスを行なっています。
  6. IG
  7. IG
  8. IG
  9. IG
  10. IG
  11. IG モダンなWebアプリケーションではコードの再利用性を高めるためバックエンドとクライアントサイドは、疎結合にしてコードをわけることが求められます。
  12. CD それでは、バックエンドのサーバーサイドにアクセスするためのAPIについて見てきましょう。 自分がクライアントサイドを開発するメンバーだったら、どんなAPIだと使いやすいのか、と気になりますよね。
  13. CD <桑島> ここで、提供されるAPIの現実です。 私たちは、先ほどご紹介した通り、100を超える様々なタイプのAPIをみてきました。 ここで、どのようなAPIがあったのか、ここからは、実録、「APIあるある」として実際の例を見てきたましょう。
  14. <桑島> 使い始める前で出だしをくじかれます。さて、API仕様書みてみるか、と思って探して見ると、ん?申請が必要なので申請書を送ってくれ?と。。。まず、使えるか確認したいだけなんだけど。うーん。
  15. <桑島> さぁAPI仕様書を入手した、と思ったら。。。Wordや神Excelで作成されたAPI仕様書。もちろん、ブラウザからのテスト実行は出来ないですし、中には、コピペもできないものもあります。
  16. <桑島> APIを使ってみて突然引っかかることもあります。私もデモしている突然引っかかり冷や汗かいたこともあります。
  17. <桑島> これは、API設計の話ですね。どっちかで統一されているとわかりやすいのですが。
  18. <桑島> これは、レガシーなアプリケーションにAPIを後からつけたケースに多いです。
  19. <桑島> ページングは、仕様書に良く載ってなかったりもするので、結構、私も実際にたたいて確認しないとわからないとこが多いです。
  20. <桑島> これ、結構、国内のサービスとかであるんですよ。クライアントサイドでハンドリングって考えただけで面倒ですよねー
  21. <桑島> これは、RESTの統一インタフェースという物を意識しているかの話ですね。
  22. <桑島> これが一番重要です。データベースに例えると、テーブル一覧、カラム定義がSQLで取得できないのと一緒です。 この一覧が取れないと、どのデータを表示するかのドロップダウンリスト一つ作るのに、ハードコードしないといけない。
  23. <桑島> エラーかどうかの切り分けに困るパターンですね。
  24. <桑島> BIとかでデータを集計や分析するときに困るパターンです。アプリケーション側の画面では見えているのにーと。
  25. <桑島> いかがでしたでしょうか? こんな、APIありませんでしょうか、もし、思いついたかたは、このハッシュタグで吠えてください。
  26. <桑島> さて、なぜ、このような使いにくいAPIが多くあるかというと、巷で標準と言われているREST APIってプロトコル、規格ではないからなんですね。
  27. じゃあ、REST APIのプロトコルや規格ってなんなの?というと、聞いたことがある方もいらっしゃると思いますが、ODataというプロトコルや、OpenAPI、以前はSwaggerと言われていたAPI仕様書のデファクトがあります。
  28. ここで、モダンAPIのポイントについて整理してみました。 一つ目は、メタデータ・スキーマが提供されていること これ大事です。 二つ目は、メタデータ・スキーマから自動生成されたドキュメントが提供されていること 三つ目は、リクエストやレスポンスなどのルール、規格が統一されていること と言えます。
  29. でも、せめて、メタデータやスキーマの一覧を動的にアクセスできるエンドポイントは欲しい。ですよね。
  30. これらを満たすだけで、API仕様書から、ある程度、クライアントサイドのコードが動的に生成される、これが、モダンなAPIと言えるでしょう。 じゃぁ、モダンなAPIって具体的にはどうやって作るの?というお話に入りたいと思います。
  31. それは、ここで、そんなモダンAPIを3ステップでDBから自動生成できるCDataAPIServerについてご紹介させていただきます。
  32. 必要なステップはこの3つ、公開するRDBなどのデータソースに接続する、公開するテーブルを選択する、APIアクセスする権限を設定する、この3つだけです。
  33. 実際にAPIServerについてデモでご覧いただきましょう。今回のデモの構成は、このようになっており、バックエンドのデータソースにはMySQLを使用しています。MySQL内のテーブルデータをAPIServerを使ってAPI公開します。
  34. IG
  35. 実際にAPIServerについてデモでご覧いただきましょう。今回のデモの構成は、このようになっており、バックエンドのデータソースにはMySQLを使用しています。MySQL内のテーブルデータをAPIServerを使ってAPI公開します。
  36. IG or CD
  37. IG or CD
  38. IG/CD
Anúncio