SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
세션 소개
.NET 프레임워크 기반의 Web API 프레임워크인 ASP
.NET Web API에 대해서
알아보고, Web API 2.0의 새로운 기능 (어트리뷰트 라우팅, Odata 지원 등)에
대해서도 살펴봅니다.
이 기술을 사용하면 다양한 유형의 클라이언트에서 사용할 수 있는 RESTful
응용프로그램을 매우 쉽게 구축할 수 있습니다.
Web API??
Web API란 무엇인가?
왜 Web API를 사용해야 하는가?
플랫폼 환경의 제한이 없는 서비스
WEB DESKTOP
Web API
클라이언트 환경의 제한이 없는 서비스
Web API
Web API의 대명사 REST
RESTful Service
동작 설명 SQL HTTP 기존 방식 RESTful API
Create 생성 INSERT POST POST, /Write.aspx?name=contact POST, /Contact
Read 읽기 SELECT GET GET, /List.aspx?name=contact&id=1 GET, /Contact/1
Update 갱신 UPDATE PUT POST, /Edit.aspx?name=contact&id=1 PUT, /Contact/1
Delete 삭제 DELETE DELETE GET, /Delete.aspx?name=contact&id=1 DELETE, /Contact/1
RESTful Service
기존 방식의 웹 접근과 RESTful API와의 요청 URI 차이
그래서! ASP
.NET Web API!!
ASP
.NET Web API 특징
• HTTP 기반의 프로그래밍 모델 지원
• 간단하고 쉽게 HTTP 리소스 생성 가능
• HTTP 내용 협상(content negotiation)
• 공통 관심사(cross cutting concerns)의 분리
• 도움말 페이지(help page) 생성
• 유연한 호스팅(hosting)
• 가볍고, 테스트 가능하고, 확장이 가능함
One ASP
.NET (ASP
.NET Web Stack)
ASP
.NET Web API 계보
MVC Framework + WCF Web API
• ASP.NET Routing
• Model binding
• Validation
• Filters
• Link generation
• Testability
• IoC integration
• VS template
• Scaffolding
ASP.NET MVC
• Modern HTTP program
ming model
• HttpClient
• Task-based async
• Formatting, content ne
gotiation
• Server-side query compositi
on
• Create custom help pages
• Self-host
• Tracing
WCF Web API
RESTful Service의 가장 이상적인 플랫폼
ASP
.NET Web API
ASP
.NET Web API 구현하기!
ASP
.NET Web API 구현
• ApiController 를 상속받는 컨트롤러 생성
• 각각의 액션메서드 구현
– HTTP 메서드와 액션메서드의 접두사가 서로 매핑
• GetComment, PostComment
– 다른 이름을 선호하는 경우
• [HttpGET / Post / Put / Delete] 특성 사용
라우팅 (Routing)
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
public IEnumerable<TodoItem> GetTodos() { … }
• 간단한 매개 변수는 URI를 통해서 바로 전달
– 라우트 데이터(Route data), 쿼리 파라미터(query parameters)
• 복합 형식(Complex Type)은 HTTP Body를 통해서 전달
– JSON, XML, Form 데이터는 기본으로 제공
• 사용자 정의 매개변수 바인딩(Custom parameter binding)
– [FromUrl], [FromBody], [ModelBinder] 등을 사용하여 재정의
액션 파라미터 (Action Parameter)
• 모든 요청(Request)에서 유효성 검사 실행
• 유효성 검사 오류는 ModelState 개체에 축적
– ModelState.IsValue
• DataAnnotation 또는 사용자 정의 유효성 검사 로직 사용
유효성 검사 (Validation)
• 응답 형식(Format)은 HTTP Content Negotiation에 따라서 결정
– [Accept] 헤더
• 서버의 응답 형식을 결정하는 요소
– 요청(Request), 액션메서드의 반환 형식, MediaTypeFormatter
• JSON과 XML 기본 제공
내용 협상 (Content Negotiation)
ASP
.NET Web API 2!!
• 어트리뷰트 라우팅(Attribute routing)
• 향상된 테스팅 기능(IHttpActionResult)
• OData: $select, $expand, $batch
• 요청 일괄 처리
• OWIN(Open Web Interface for .NET) 통합
• Web API 보안 (CORS, OAuth 2.0, authn filters)
• 이식 가능한 Web API 클라이언트
ASP
.NET Web API 2 새로운 특징
• 중앙 집중식의 단점을 보완하고 직관적인 라우팅 설정
– 보다 유연하고 명확한 라우팅
• Attribute Routing 활성화
어트리뷰트 라우팅 (Attribute routing)
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
• 웹에서 데이터를 조회하고 수정할 수 있도록 주고 받는 웹(프로토콜)
• [Queryable], IQueryable<T>
• $top, $skip, $orderby, $filter, $select, $expand, $batch …
OData(Open Data Protocol) 지원
// OData 활성화
[Queryable]
public IQueryable<Product> GetProduct(…)
Summary
http://www.asp.net/web-api
그런데 영어 ㅠ
우리 함께 해요!!
• Taeyo.NET
– http://www.taeyo.net
• ASP.NET Korea user Group
– https://www.facebook.com/groups/177323639028540/
• Microsoft ALM Korea
– https://www.facebook.com/groups/MicrosoftALMKorea/
• ASP.NET Web API 공식 웹사이트
– http://www.asp.net/web-api
• ASP.NET vNext Web API 2
– http://www.asp.net/vnext/overview/aspnet-web-api
• Taeyo.NET ASP.NET Web API 번역 아티클
– http://www.taeyo.net/Columns/View.aspx?SEQ=464&PSEQ=35
• Taeyo.NET Windows Azure 강좌
– http://www.taeyo.net/Columns/View.aspx?SEQ=409&PSEQ=33&IDX=1
• Scott hanselman Blog
– http://www.hanselman.com/
• Build RESTful API's with ASP.NET Web API
– http://www.asp.net/web-api/tutorials/hands-on-labs/build-restful-apis-with-aspnet-web-api
• Introduction to ASP.NET Web API
– http://www.codeproject.com/Articles/549152/Introduction-to-ASP-NET-Web-API
• ASP.NET Web API 2.0 and the new OData keywords
– http://www.devcurry.com/2013/07/aspnet-web-api-20-and-new-odata-keywords.html#.Ukm2Hyuwf4a
• 닷넷코리아 온라인 세미나 1회
– http://www.dotnetkorea.com/DotNetNote/BoardList.aspx?BoardName=Seminar
참고자료
ASP.NET Web API를 이용한 오픈 API 개발

Contenu connexe

Similaire à ASP.NET Web API를 이용한 오픈 API 개발

파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 SeongHyun Ahn
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
Booting Spring Data REST
Booting Spring Data RESTBooting Spring Data REST
Booting Spring Data REST경원 이
 
Restful web service
Restful web serviceRestful web service
Restful web servicesunguen lee
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해Terry Cho
 
Google Cloud Platform - Apigee
Google Cloud Platform - ApigeeGoogle Cloud Platform - Apigee
Google Cloud Platform - Apigeebliexsoft
 
WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술Changhwan Yi
 
Service-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellService-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellSamsung Electronics
 
Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2plusperson
 
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)진태 이
 
Service mesh(istio) monitoring
Service mesh(istio) monitoringService mesh(istio) monitoring
Service mesh(istio) monitoringJeong-Ho Na
 
Html5 kig 120315_res_tful_api
Html5 kig 120315_res_tful_apiHtml5 kig 120315_res_tful_api
Html5 kig 120315_res_tful_apiSeiyon Lee
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)Amazon Web Services Korea
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)Sang Don Kim
 

Similaire à ASP.NET Web API를 이용한 오픈 API 개발 (20)

파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄
 
REST
RESTREST
REST
 
One ASP.NET
One ASP.NETOne ASP.NET
One ASP.NET
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
Booting Spring Data REST
Booting Spring Data RESTBooting Spring Data REST
Booting Spring Data REST
 
Restful web service
Restful web serviceRestful web service
Restful web service
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
 
Google Cloud Platform - Apigee
Google Cloud Platform - ApigeeGoogle Cloud Platform - Apigee
Google Cloud Platform - Apigee
 
WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술
 
Service-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellService-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a Nutshell
 
Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
 
REST Concept
REST ConceptREST Concept
REST Concept
 
Service mesh(istio) monitoring
Service mesh(istio) monitoringService mesh(istio) monitoring
Service mesh(istio) monitoring
 
Html5 kig 120315_res_tful_api
Html5 kig 120315_res_tful_apiHtml5 kig 120315_res_tful_api
Html5 kig 120315_res_tful_api
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
 
스프링 3.0 & RESTful
스프링 3.0 & RESTful스프링 3.0 & RESTful
스프링 3.0 & RESTful
 

Plus de SangHoon Han

ASP.NET Core와 Azure App Service와의 환상적인 만남
ASP.NET Core와 Azure App Service와의 환상적인 만남ASP.NET Core와 Azure App Service와의 환상적인 만남
ASP.NET Core와 Azure App Service와의 환상적인 만남SangHoon Han
 
VSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application Insights
VSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application InsightsVSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application Insights
VSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application InsightsSangHoon Han
 
최신 IT 트렌드, 그리고 Web을 만드는 사람들
최신 IT 트렌드, 그리고 Web을 만드는 사람들최신 IT 트렌드, 그리고 Web을 만드는 사람들
최신 IT 트렌드, 그리고 Web을 만드는 사람들SangHoon Han
 
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdfSangHoon Han
 
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfSangHoon Han
 
Developer`s Web Standard
Developer`s Web StandardDeveloper`s Web Standard
Developer`s Web StandardSangHoon Han
 
ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)
ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)
ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)SangHoon Han
 
Blazor와 안면 트기!
Blazor와 안면 트기!Blazor와 안면 트기!
Blazor와 안면 트기!SangHoon Han
 
ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이
ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이
ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이SangHoon Han
 
어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?SangHoon Han
 
ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)
ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)
ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)SangHoon Han
 
Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험
Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험
Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험SangHoon Han
 
커뮤니티와 함께하는 슬기로운 개발생활
커뮤니티와 함께하는 슬기로운 개발생활커뮤니티와 함께하는 슬기로운 개발생활
커뮤니티와 함께하는 슬기로운 개발생활SangHoon Han
 
I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages SangHoon Han
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET CoreSangHoon Han
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!SangHoon Han
 
크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!
크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!
크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!SangHoon Han
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!SangHoon Han
 

Plus de SangHoon Han (18)

ASP.NET Core와 Azure App Service와의 환상적인 만남
ASP.NET Core와 Azure App Service와의 환상적인 만남ASP.NET Core와 Azure App Service와의 환상적인 만남
ASP.NET Core와 Azure App Service와의 환상적인 만남
 
VSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application Insights
VSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application InsightsVSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application Insights
VSO의 매력 터지는 핵심 기능! 클라우드 기반의 성능 분석 도구 Application Insights
 
최신 IT 트렌드, 그리고 Web을 만드는 사람들
최신 IT 트렌드, 그리고 Web을 만드는 사람들최신 IT 트렌드, 그리고 Web을 만드는 사람들
최신 IT 트렌드, 그리고 Web을 만드는 사람들
 
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
 
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
 
Developer`s Web Standard
Developer`s Web StandardDeveloper`s Web Standard
Developer`s Web Standard
 
ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)
ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)
ASP.NET 4.0 New Features Part2 - URL Routing(ASP.NET WebForms)
 
Blazor와 안면 트기!
Blazor와 안면 트기!Blazor와 안면 트기!
Blazor와 안면 트기!
 
ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이
ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이
ASP.NET의 시작(or 재시작)을 어려워하는 이들을 위한 길라잡이
 
어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?
 
ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)
ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)
ASP.NET Core 3.0과 Blazor를 활용한 새로운 WEB 개발(그리고 Try.NET)
 
Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험
Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험
Intelligent Kiosk와 함께 떠나는 Microsoft Cognitive Services 탐험
 
커뮤니티와 함께하는 슬기로운 개발생활
커뮤니티와 함께하는 슬기로운 개발생활커뮤니티와 함께하는 슬기로운 개발생활
커뮤니티와 함께하는 슬기로운 개발생활
 
I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
 
크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!
크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!
크로스 플랫폼을 지향하는 Alm, 당황하지 않고 vso로 빡! 끝!
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
 

Dernier

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 

Dernier (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 

ASP.NET Web API를 이용한 오픈 API 개발

  • 1.
  • 2. 세션 소개 .NET 프레임워크 기반의 Web API 프레임워크인 ASP .NET Web API에 대해서 알아보고, Web API 2.0의 새로운 기능 (어트리뷰트 라우팅, Odata 지원 등)에 대해서도 살펴봅니다. 이 기술을 사용하면 다양한 유형의 클라이언트에서 사용할 수 있는 RESTful 응용프로그램을 매우 쉽게 구축할 수 있습니다.
  • 5. 왜 Web API를 사용해야 하는가?
  • 6. 플랫폼 환경의 제한이 없는 서비스 WEB DESKTOP Web API
  • 7. 클라이언트 환경의 제한이 없는 서비스 Web API
  • 10. 동작 설명 SQL HTTP 기존 방식 RESTful API Create 생성 INSERT POST POST, /Write.aspx?name=contact POST, /Contact Read 읽기 SELECT GET GET, /List.aspx?name=contact&id=1 GET, /Contact/1 Update 갱신 UPDATE PUT POST, /Edit.aspx?name=contact&id=1 PUT, /Contact/1 Delete 삭제 DELETE DELETE GET, /Delete.aspx?name=contact&id=1 DELETE, /Contact/1 RESTful Service 기존 방식의 웹 접근과 RESTful API와의 요청 URI 차이
  • 11.
  • 13. ASP .NET Web API 특징 • HTTP 기반의 프로그래밍 모델 지원 • 간단하고 쉽게 HTTP 리소스 생성 가능 • HTTP 내용 협상(content negotiation) • 공통 관심사(cross cutting concerns)의 분리 • 도움말 페이지(help page) 생성 • 유연한 호스팅(hosting) • 가볍고, 테스트 가능하고, 확장이 가능함
  • 16. MVC Framework + WCF Web API • ASP.NET Routing • Model binding • Validation • Filters • Link generation • Testability • IoC integration • VS template • Scaffolding ASP.NET MVC • Modern HTTP program ming model • HttpClient • Task-based async • Formatting, content ne gotiation • Server-side query compositi on • Create custom help pages • Self-host • Tracing WCF Web API
  • 17. RESTful Service의 가장 이상적인 플랫폼 ASP .NET Web API
  • 18.
  • 19. ASP .NET Web API 구현하기!
  • 20. ASP .NET Web API 구현 • ApiController 를 상속받는 컨트롤러 생성 • 각각의 액션메서드 구현 – HTTP 메서드와 액션메서드의 접두사가 서로 매핑 • GetComment, PostComment – 다른 이름을 선호하는 경우 • [HttpGET / Post / Put / Delete] 특성 사용
  • 21. 라우팅 (Routing) config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); public IEnumerable<TodoItem> GetTodos() { … }
  • 22. • 간단한 매개 변수는 URI를 통해서 바로 전달 – 라우트 데이터(Route data), 쿼리 파라미터(query parameters) • 복합 형식(Complex Type)은 HTTP Body를 통해서 전달 – JSON, XML, Form 데이터는 기본으로 제공 • 사용자 정의 매개변수 바인딩(Custom parameter binding) – [FromUrl], [FromBody], [ModelBinder] 등을 사용하여 재정의 액션 파라미터 (Action Parameter)
  • 23. • 모든 요청(Request)에서 유효성 검사 실행 • 유효성 검사 오류는 ModelState 개체에 축적 – ModelState.IsValue • DataAnnotation 또는 사용자 정의 유효성 검사 로직 사용 유효성 검사 (Validation)
  • 24. • 응답 형식(Format)은 HTTP Content Negotiation에 따라서 결정 – [Accept] 헤더 • 서버의 응답 형식을 결정하는 요소 – 요청(Request), 액션메서드의 반환 형식, MediaTypeFormatter • JSON과 XML 기본 제공 내용 협상 (Content Negotiation)
  • 25.
  • 27. • 어트리뷰트 라우팅(Attribute routing) • 향상된 테스팅 기능(IHttpActionResult) • OData: $select, $expand, $batch • 요청 일괄 처리 • OWIN(Open Web Interface for .NET) 통합 • Web API 보안 (CORS, OAuth 2.0, authn filters) • 이식 가능한 Web API 클라이언트 ASP .NET Web API 2 새로운 특징
  • 28. • 중앙 집중식의 단점을 보완하고 직관적인 라우팅 설정 – 보다 유연하고 명확한 라우팅 • Attribute Routing 활성화 어트리뷰트 라우팅 (Attribute routing) // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
  • 29. • 웹에서 데이터를 조회하고 수정할 수 있도록 주고 받는 웹(프로토콜) • [Queryable], IQueryable<T> • $top, $skip, $orderby, $filter, $select, $expand, $batch … OData(Open Data Protocol) 지원 // OData 활성화 [Queryable] public IQueryable<Product> GetProduct(…)
  • 30.
  • 33. 우리 함께 해요!! • Taeyo.NET – http://www.taeyo.net • ASP.NET Korea user Group – https://www.facebook.com/groups/177323639028540/ • Microsoft ALM Korea – https://www.facebook.com/groups/MicrosoftALMKorea/
  • 34. • ASP.NET Web API 공식 웹사이트 – http://www.asp.net/web-api • ASP.NET vNext Web API 2 – http://www.asp.net/vnext/overview/aspnet-web-api • Taeyo.NET ASP.NET Web API 번역 아티클 – http://www.taeyo.net/Columns/View.aspx?SEQ=464&PSEQ=35 • Taeyo.NET Windows Azure 강좌 – http://www.taeyo.net/Columns/View.aspx?SEQ=409&PSEQ=33&IDX=1 • Scott hanselman Blog – http://www.hanselman.com/ • Build RESTful API's with ASP.NET Web API – http://www.asp.net/web-api/tutorials/hands-on-labs/build-restful-apis-with-aspnet-web-api • Introduction to ASP.NET Web API – http://www.codeproject.com/Articles/549152/Introduction-to-ASP-NET-Web-API • ASP.NET Web API 2.0 and the new OData keywords – http://www.devcurry.com/2013/07/aspnet-web-api-20-and-new-odata-keywords.html#.Ukm2Hyuwf4a • 닷넷코리아 온라인 세미나 1회 – http://www.dotnetkorea.com/DotNetNote/BoardList.aspx?BoardName=Seminar 참고자료