회사의 많은 프로젝트는 초기 단계에서 WebForms를 사용해 왔습니다. 하지만 사업의 발전으로 인해 회사에서는 모바일 단말을 원래 프로젝트에 연결해야 합니다. Webservice는 좀 오래되었고, 지금은 RESTFul이 더 대중화되었기 때문에 WebAPI를 생각하게 되었습니다.
1. 새 프로젝트를 만드는 것이 가장 쉬운 경우 file=>New=>Project=>Web=> ASP.NET 웹 애플리케이션에서 아래의 Web Forms 및 Web API 핵심 참조를 확인하세요. 동시에 webfroms 핵심 및 WebAPI 핵심 애플리케이션이 생성됩니다.
2. 원본 프로젝트에 WebAPI를 추가하는 경우 해당 패키지를 참조하면 됩니다.
1. 먼저 WebForms 애플리케이션을 만들어 보겠습니다.
2. Webfroms 프로젝트가 생성된 후 VS의 NuGet 패키지 관리자를 사용해야 합니다. 참조를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.
찾아보기를 선택하고 WebAPI를 검색한 후 첫 번째 Microsoft.AspNet.WebApi를 선택하고 오른쪽에서 설치를 클릭한 다음 동의를 클릭하고 출력에 성공이 표시되면 설치가 완료된 것입니다.
3. 웹 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 App_Start 폴더를 추가한 후 App_Start 폴더 아래에 WebApiConfig라는 cs 파일을 생성합니다.
네임스페이스를 정리하고, 클래스를 정적 유형으로 변경하고, 필요한 코드를 추가하고, 누락된 참조를 자체 참조하세요.
전체 코드는 다음과 같습니다.
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Http;namespace WebFormsDemo {public static class WebApiConfig {public static void Register(HttpConfiguration config) {// Web API 配置和服务// Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } }
4. Global.asax 파일 아래의 Application_Start 메서드에 WebAPI를 등록해야 하며 여기에서 전체 코드를 참조해야 합니다.
protected void Application_Start(object sender, EventArgs e) {// 在应用程序启动时运行的代码 GlobalConfiguration.Configure(WebApiConfig.Register); }
5 .다음으로 테스트하고 새 Controller
6를 만들어 보겠습니다. 브라우저는 http://localhost:27650/api/values/get?id=1에 액세스합니다. 테스트 통과.
3. OWIN을 호스트로 사용하여 Webapi를 시작합니다.
위는 WebAPI를 시작하기 위해 Global 방법을 사용하는 것입니다. 프로젝트에서 SignalR을 사용하는 경우 튜토리얼이 있지만 OWIN을 호스트로 사용해야 합니다. 인터넷에서는 Global도 SignalR을 시작할 수 있지만(Application_Start 메서드에 RouteTable.Routes.MapHubs(); 문장 추가) Microsoft는 2014년 6월에 이 기능을 더 이상 사용하지 않는다고 선언했습니다. Owin Startup Class를 사용하는 것이 좋습니다. SignalR을 시작합니다. ()
1. 새로운 Startup 클래스를 만듭니다
2. 전체 코드는 다음과 같습니다.
/// <summary>/// 配置Webapi/// </summary>/// <param>public void ConfigureWebapi(IAppBuilder app) {//创建一个HTTP的实例配置HttpConfiguration config = new HttpConfiguration();//映射路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );//将配置注入OWIN管道中 app.UseWebApi(config); }
3 자체 호스트 호스팅 지원이 부족하여 UseWebApi 정의가 IAppBuilder에 포함되지 않는다는 오류 메시지가 있는 것을 발견했습니다. 패키지 관리자 콘솔에
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
4.安装完成后错误提示消失
5.移除Global中的启动方式,并将ConfigureWebapi方法初始化。
6.让我们来测试一下,http://localhost:27650/api/values/get?id=1,报错误404.
7.原因是还缺少一个名为 Microsoft.Owin.Host.SystemWeb 的包,这个包提供了Owin服务运行ASP.NET 网络请求管道。在程序包管理器控制台,中输入以下指令:
install-package Microsoft.Owin.Host.SystemWeb
8.让我们再来测试一下,浏览器中输入http://localhost:27650/api/values/get?id=1,测试通过。
最后,值得一提的是官方的教程大多都使用隐式类型var 关键字,有网友说使用隐式类型的好处有
1.它有利于更好地为本地变量命名。
2. 它有利于设计更好的API。
3. 它促使对变量进行初始化。
4. 它消除了代码的混乱。
5. 它不需要using指示符。
楼主还没有深刻的体会和研究,不敢在这里妄加解释。还在学习中,下面是微软官方的文档,大家感受一下。
文章到这里就结束了,其实写如何搭建WebAPI的文章也很多,这里仅仅是做一下记录,以防自己忘掉,如果此文章有幸被你看到,欢迎不吝指教。
위 내용은 Webforms에서 WebAPI를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!