rabbit-slide-unasuke-omotesandorb-49 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7f92821c2ed020ee61e5f58e0c5604585f78ae2e55306152c6221e6bc9a97d06
4
+ data.tar.gz: 6f8186bf8a6796b636d8fa6011046e7315f6ba8b261de53da31d566c251837df
5
+ SHA512:
6
+ metadata.gz: 10322592a1f6903a8179969021acb041afbb0d877fdda0ee3879057b68722a0999875d887926c2c53cb9fffb2ab33135ed315058f7e1f36ff3693f9a7444ec88
7
+ data.tar.gz: 3ec5cb3e2f8e98cd3c2fc86860ebbd9100cc4f2b55c180b6d9af078db2e121d6e9db0f85c4156785e1ec6a70ec5d3f430db05e6fbb3033879d99283ae4993135
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ slide.md
@@ -0,0 +1,22 @@
1
+ # omotesandorb #49
2
+
3
+ ## 作者向け
4
+
5
+ ### 表示
6
+
7
+ rake
8
+
9
+ ### 公開
10
+
11
+ rake publish
12
+
13
+ ## 閲覧者向け
14
+
15
+ ### インストール
16
+
17
+ gem install rabbit-slide-unasuke-omotesandorb-49
18
+
19
+ ### 表示
20
+
21
+ rabbit rabbit-slide-unasuke-omotesandorb-49.gem
22
+
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: omotesandorb-49
3
+ base_name: slide
4
+ tags: ['ruby', 'rails', 'openapi']
5
+ presentation_date:
6
+ version: 1.0.0
7
+ licenses: []
8
+ slideshare_id:
9
+ speaker_deck_id:
10
+ ustream_id:
11
+ vimeo_id:
12
+ youtube_id:
13
+ author:
14
+ markup_language: :markdown
15
+ name: unasuke
16
+ email: yusuke1994525@gmail.com
17
+ rubygems_user: unasuke
18
+ slideshare_user:
19
+ speaker_deck_user:
Binary file
Binary file
@@ -0,0 +1,87 @@
1
+ # OpenAPI 3 によるスキーマラスト開発
2
+ subtitle
3
+ : 2019-08-01
4
+
5
+ subtitle
6
+ : 表参道.rb #49
7
+
8
+ author
9
+ : うなすけ
10
+
11
+ theme
12
+ : unasuke-white
13
+
14
+
15
+ # 自己紹介
16
+ - 名前 : うなすけ
17
+ - 仕事 : 株式会社バンク (エンジニア)
18
+ - インフラ寄りサーバーサイドエンジニア
19
+ - Ruby, Rails, Kubernetes...
20
+
21
+ - {::tag name="x-small"}GitHub [@unasuke](https://github.com/unasuke){:/tag}
22
+ - {::tag name="x-small"}Mastodon [@unasuke@mstdn.unasuke.com](https://mstdn.unasuke.com/@unasuke){:/tag}
23
+ - {::tag name="x-small"}Twitter [@yu\_suke1994](https://twitter.com/yu_suke1994){:/tag}
24
+
25
+ ![](img/icon_raw.jpg){:relative_width="24" align="right" relative_margin_right="-10" relative_margin_top="42"}
26
+
27
+ # OpenAPI 3
28
+ ![](https://www.openapis.org/wp-content/uploads/sites/3/2018/02/OpenAPI_Logo_Pantone-1.png){:relative_width="90"}
29
+
30
+ <https://www.openapis.org/>
31
+
32
+ - YAMLやJSONで REST APIの仕様を記述するやつ
33
+ - Swaggerとか聞いたことある人多いんでは
34
+
35
+ # OpenAPI 3
36
+ - スキーマファースト開発で使われる
37
+ - serverとclientがAPIのschemaを定義してから開発
38
+ - 手戻りが少ない
39
+ - documentができる
40
+ - [スキーマファースト開発のススメ - onk.ninja](https://blog.onk.ninja/2017/09/21/schema_first_development)
41
+
42
+ # OpenAPI 3 例
43
+ ```yaml
44
+ openapi: 3.0.0
45
+ info:
46
+ title: Sample API
47
+ description: Optional multiline or single-line description
48
+ version: 0.1.9
49
+ servers:
50
+ - url: http://api.example.com/v1
51
+ description: Optional server description, e.g. Main (production) server
52
+ - url: http://staging-api.example.com
53
+ description: Optional server description, e.g. Internal staging server for testing
54
+ paths:
55
+ /users:
56
+ get:
57
+ summary: Returns a list of users.
58
+ description: Optional extended description in CommonMark or HTML.
59
+ responses:
60
+ '200': # status code
61
+ description: A JSON array of user names
62
+ ```
63
+
64
+ <https://swagger.io/docs/specification/basic-structure/>
65
+
66
+ # 現実世界には様々なことがある
67
+ - 途中からOpenAPIを導入したい
68
+ - 大量の定義を書かねばならぬ
69
+ - タスクがパンク
70
+ - 終了
71
+
72
+ # `config/routes.rb` があるじゃん
73
+ - ここからなんとか paths のやつだけ自動生成できないか?
74
+
75
+ # できた
76
+ <https://github.com/unasuke/openapi3_definition_generator-rails>
77
+
78
+ # つらみ
79
+ ここからコードを見ながら話します
80
+
81
+ # つらみ
82
+ - 何もかもがPrivate API
83
+
84
+ # まとめ
85
+ - 今月中にブログ書きます
86
+
87
+ ![](img/esa-wip.png){:relative_width='100'}
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-unasuke-omotesandorb-49
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - unasuke
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-08-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: ''
28
+ email:
29
+ - yusuke1994525@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - img/esa-wip.png
39
+ - img/icon_raw.jpg
40
+ - pdf/omotesandorb-49-slide.pdf
41
+ - slide.md
42
+ homepage: http://slide.rabbit-shocker.org/authors/unasuke/omotesandorb-49/
43
+ licenses: []
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubygems_version: 3.0.3
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: 'omotesandorb #49'
64
+ test_files: []