Enviar pesquisa
Carregar
マイクロサービスのためのフレームワークGoaのご紹介
•
Transferir como PPTX, PDF
•
1 gostou
•
2,385 visualizações
Kazuaki Shibue
Seguir
マイクロサービスのためのgoa
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 34
Baixar agora
Recomendados
Scala製機械学習サーバ「Apache PredictionIO」
Scala製機械学習サーバ「Apache PredictionIO」
takezoe
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
貴志 上坂
Introducing microsoft learn
Introducing microsoft learn
ru pic
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
貴志 上坂
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
貴志 上坂
第5回 cogbot勉強会!
第5回 cogbot勉強会!
貴志 上坂
Recomendados
Scala製機械学習サーバ「Apache PredictionIO」
Scala製機械学習サーバ「Apache PredictionIO」
takezoe
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
貴志 上坂
Introducing microsoft learn
Introducing microsoft learn
ru pic
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
貴志 上坂
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
貴志 上坂
第5回 cogbot勉強会!
第5回 cogbot勉強会!
貴志 上坂
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
Akira Kitauchi
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
Terui Masashi
Microsoft機械学習の簡単な紹介
Microsoft機械学習の簡単な紹介
A AOKI
クラウド時代だからこそ見直したい PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい PHPアプリケーションのパフォーマンスチューニング
Terui Masashi
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話し
Hideaki Tarumi
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
貴志 上坂
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Shotaro Suzuki
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Yuji Otani
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
leverages_event
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
Takahiro Moteki
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Hiroshi Ohnuki
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
gree_tech
jaws-ug kansai-special_aurora_20150207
jaws-ug kansai-special_aurora_20150207
Toshiyuki Konparu
Azure MLやってみよう
Azure MLやってみよう
A AOKI
Non-Functional Programming in Scala
Non-Functional Programming in Scala
takezoe
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
Terui Masashi
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
MasashiOtsuka1
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
Mais conteúdo relacionado
Mais procurados
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
Akira Kitauchi
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
Terui Masashi
Microsoft機械学習の簡単な紹介
Microsoft機械学習の簡単な紹介
A AOKI
クラウド時代だからこそ見直したい PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい PHPアプリケーションのパフォーマンスチューニング
Terui Masashi
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話し
Hideaki Tarumi
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
貴志 上坂
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Shotaro Suzuki
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Yuji Otani
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
leverages_event
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
Takahiro Moteki
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Hiroshi Ohnuki
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
gree_tech
jaws-ug kansai-special_aurora_20150207
jaws-ug kansai-special_aurora_20150207
Toshiyuki Konparu
Azure MLやってみよう
Azure MLやってみよう
A AOKI
Non-Functional Programming in Scala
Non-Functional Programming in Scala
takezoe
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
Terui Masashi
Mais procurados
(20)
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
Microsoft機械学習の簡単な紹介
Microsoft機械学習の簡単な紹介
クラウド時代だからこそ見直したい PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい PHPアプリケーションのパフォーマンスチューニング
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話し
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-dev
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
[社内合同勉強会]インフラ業務を開発エンジニアへ移譲して 移譲前-移譲後-そして今-
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
Atlassian Summit Europe 2017の参加報告(Aug Tokyo #22)
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
jaws-ug kansai-special_aurora_20150207
jaws-ug kansai-special_aurora_20150207
Azure MLやってみよう
Azure MLやってみよう
Non-Functional Programming in Scala
Non-Functional Programming in Scala
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
Semelhante a マイクロサービスのためのフレームワークGoaのご紹介
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
MasashiOtsuka1
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
iwata jaws-ug
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
Naoki Yamada
ディレクターとして取り組むHCD業務の実際
ディレクターとして取り組むHCD業務の実際
寛 水野
AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介
ssuser39314d
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
Seiko Kuchida
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto
CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?
Kumano Ryo
MicroServices & APIs
MicroServices & APIs
pospome
RxSwiftとMVVMパターンと仲良くなる次のステップ
RxSwiftとMVVMパターンと仲良くなる次のステップ
Fumiya Sakai
Swaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
Kumano Ryo
もっとサーバーレスを手軽に便利に!Azure Logic Apps
もっとサーバーレスを手軽に便利に!Azure Logic Apps
典子 松本
楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa
Takahiro Tsuchiya
初めてのWebプログラミング講座
初めてのWebプログラミング講座
DIVE INTO CODE Corp.
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
Takahiro Fujii
プログラム・マネジメント @ Open棟梁プロジェクト
プログラム・マネジメント @ Open棟梁プロジェクト
Daisuke Nishino
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
Semelhante a マイクロサービスのためのフレームワークGoaのご紹介
(20)
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
ディレクターとして取り組むHCD業務の実際
ディレクターとして取り組むHCD業務の実際
AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?
MicroServices & APIs
MicroServices & APIs
RxSwiftとMVVMパターンと仲良くなる次のステップ
RxSwiftとMVVMパターンと仲良くなる次のステップ
Swaggerのさわりだけ
Swaggerのさわりだけ
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
もっとサーバーレスを手軽に便利に!Azure Logic Apps
もっとサーバーレスを手軽に便利に!Azure Logic Apps
楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa
初めてのWebプログラミング講座
初めてのWebプログラミング講座
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
プログラム・マネジメント @ Open棟梁プロジェクト
プログラム・マネジメント @ Open棟梁プロジェクト
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
マイクロサービスのためのフレームワークGoaのご紹介
1.
マイクロサービスのための フレームワークgoaのご紹介 2017. 06. 23
オレシカナイトVol.2
2.
Self Introduction
3.
渋江 一晃 MDH アドテク局
基盤グループ サーバーサイドエンジニア 2016年サイバーエージェント中途入社 最近Go始めました(Go歴3ヶ月(実質1ヶ月半))
4.
Introduce goa
5.
APIをどのように設計します か?
6.
考えることは色々ある - ルーティング - バリデーション -
APIドキュメント ...
7.
いざ始めると色々な問題が… - ころころ変わるAPI仕様 - バリデーションどうしよう -
追従できないAPIドキュメント APIの「側」を作るだけでも大変
8.
ビジネスロジックに集中し たい
9.
マイクロサービスのためのフレームワーク https://github.com/goadesign/goa
10.
goa design firstを謳っているgoでマイクロサービスを構築するためのフレームワーク design DSLからコード生成(goagen)してAPIを作る
11.
APIデザインライフサイクル
12.
swagger生成ツール - go-swagger → swaggerが既にあると便利 →
EP毎のミドルウェアの設定ができなかった - goa → DSLが読みやすかった → ドキュメントもgo-swaggerと比べて多かった
13.
goaが自動生成してくれるもの - ルーティング - バリデーション -
コントローラー - APIドキュメント(swagger)
14.
How to use
goa
15.
0. prepare $ go
get -u github.com/goadesign/goa/... $ mkdir $GOPATH/src/goa-adder
16.
17.
1.design $GOPATH/src/goa-adder/design/design.go
18.
generate $ goagen bootstrap
-d goa-adder/design
19.
20.
2. review APIデザイン→generateした結果、以下が生成される - コントローラー -
バリデーション - リクエスト・レスポンスのモデル - swagger定義 インターフェースのレビュー
21.
22.
3. Implement プロジェクトルート直下にあるoperands.goを開く
23.
3. Implement operands.goを編集
24.
4. Run $ go
build $ ./goa-adder 2017/06/20 16:51:49 [INFO] mount ctrl=Operands action=Add route=GET /add/:left/:right 2017/06/20 16:51:49 [INFO] listen transport=http addr=:8080
25.
Swagger design/design.goに追記
26.
$ goagen bootstrap
-d goa-adder/design swagger.goが生成される main.goに追記してControllerをmountする
27.
再コンパイル $ go build
&& ./goa-adder
28.
Tips
29.
基本的にいじるのは - Controller - main.go 他はgoaが生成するので触らない(上書きされる) 追加したControllerのマウントし忘れがちょくちょくある
30.
ミドルウェア
31.
エラーハンドリング goaが自動生成するエラーではなくアプリ独自のエラーで返したい → issue(#1076)で質問
32.
goaが生成するエラーメッセージに該当のエラーが含まれていたら自前のエラー に置き換えるミドルウェアを実装
33.
gorma goa向けのストレージプラグイン カスタムDSLをgenerateすると、自動でモデルの生成とDaoなどの便利なヘルパ ーも生成してくれる
34.
まとめ - APIを作る上で最低限必要なコードを自動生成してくれる - swagger(json/yaml)も生成してくれる -
DSLは読みやすい - 日本語ドキュメントも充実
Notas do Editor
APIサーバを作るとなったとき、どのように設計しますか、ということです
ルーティング net/httpを使う? gin/echo/gojiとか使う? APIドキュメント swagger blueprint
# dot imports パッケージ名の修飾子なしで関数の呼び出しが可能になる
ロジックを実装する前に、コントローラー、バリデーション、リクエスト・レスポンスのモデルやswaggerの定義が出力されるので、APIのインターフェイス的にどうなのかをWIPでPRでなげてレビューしてもらう
gormaは使用していない
初めてgoaを使う人、使おうと考えてる方に役立てれば幸いです
Baixar agora