Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ASP.NetでAPIを作ってみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
laco
January 22, 2014
Programming
510
0
Share
ASP.NetでAPIを作ってみた
C#福岡 第三回勉強会にて
API.Net WebAPIの話
laco
January 22, 2014
More Decks by laco
See All by laco
Angular2とMVVM
laco0416
5
5.7k
Pub使ってますか?
laco0416
1
1.7k
OSC_F_2013 LT
laco0416
0
140
Other Decks in Programming
See All in Programming
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
250
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
3
770
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.9k
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
570
飯MCP
yusukebe
0
490
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
720
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
130
CDK Deployのための ”反響定位”
watany
1
530
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
420
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
96
Chasing Engaging Ingredients in Design
codingconduct
0
160
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
130
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The agentic SEO stack - context over prompts
schlessera
0
740
The untapped power of vector embeddings
frankvandijk
2
1.7k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
290
How GitHub (no longer) Works
holman
316
150k
Transcript
ASP.NetでAPIを作ってみた 2014.01/22 C#福岡 第3回勉強会
About me
らこ Suguru Inatomi Twitter:@laco0416 学生 C#とかJavaとかPythonとか http://lacolaco.net
What ‘s ASP.Net Web API?
One ASP.NET (Scott Hanselman氏のブログより)
Microsoft ASP.NET Web API 現行バージョン: 4.0.30506 マルチプラットフォームのHTTPサービスフレームワーク 2012年8月に誕生したばかりの新しい技術 なんと20日にWeb API
2.1リリース http://blogs.msdn.com/b/webdev/archive/2014/01/20/announcing-the- release-of-asp-net-mvc-5-1-asp-net-web-api-2-1-and-asp-net-web- pages-3-1.aspx
ASP.NET Web API (@ITより)
Let’s make it!
Step-1 Make Project
None
None
Step-2 Make Controller
ModelsController Controller class -> ValuesController API endpoint -> http://lacolaco.net/api/values コントローラ名からURLルーティングを
自動でやってくれる
None
None
これだけですでに実行可能 RESTfulなインタフェースが すでに定義済み いたれりつくせり
メソッド名とHTTPのメソッド が対応しているので 名前の変更はNG 使わないAPIを消すのはOK
Step-3 Receive params
引数無しGet 主にデータストアから 全レコードを返す時など。
引数の規則 ・プリミティブ型はUriから ・それ以外はBodyから ・[FromBody]をつけると プリミティブでもBodyから読む ・[FromUri]をつけると オブジェクトでもUriから読む
Uriパラメータ受け取り ・仮引数名がそのままkeyになる api/samples?id=1 ・引数がidだけの時は api/samples/1と api/samples?id=1 は同じ
None
Bodyパラメータ受け取り ・Bodyから受け取れるのは 1つの引数のみ ・モデルクラスを用意して jsonのオブジェクトを受け取る ことができる
Body { id : 0 , value : “CSharp”} ↓
C# new Sample() { id = 0, value = “CSharp”};
Step-4 Run
None
API仕様のページまで 作ってくれる
My product IT Event API
直近1ヶ月のIT系勉強会を返すAPI 文字列で検索も可能 http://api.lacolaco.net/events?query=福岡
ここで終わりだったんですが
Web API 2.1リリース ASP.Net MVC 5.1とWeb API 2.1が同時に正式リリース。 VS 2013
VS 2013 Update 1へのアプデが必要 VS 2012 ASP.NET and Web Tools 2013.1 for Visual Studio 2012の インストールが必要
Web API 2 : VS2013でのみ利用可能だった ↓ Web API 2.1 :
VS2012でも利用可能に。 Install-Package Microsoft.AspNet.WebApi -Version 5.1.0 ・ Global Error Handling (エラーハンドリングを一箇所にまとめられるようになった) ・ Attribute Routing Improvements (属性によるルーティングの改善?) ・ Help Page Improvements (APIヘルプページの改善) ・ IgnoreRoute Support ・ BSON Media-Type Formatter (BSONオブジェクトに対応) ・ Better Support for Async Filters ・ Query Parsing for the Client Formatting Library (System.Net.Http.Formattingの拡張) まだ詳細を把握できていないので詳しくは原文を参照してください http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21
Thank you for listening