asp.net – Visual Studio中Web API和Azure API APP之间的区别
在创建新的ASP.NET Web应用程序以开发我的API并在Azure中托管它时,我有两个选择:
> Web API 我可以创建一个Web API APP并将其托管在Azure API APP中吗?那么它们存在的主要原因是什么? 解决方法
根据您的需要,它们只是不同的起点.
Azure API是一个精简的API模板,支持OpenAPI. ASP.NET Web API是一个完整的ASP.NET MVC应用程序,主要用于支持API. 差异#1:Web API模板中的身份验证支持 ASP.NET Web API 支持身份验证选择(无,个人用户,工作或学校,Windows). ASP.NET Azure API应用程序 期望客户提供代币(持票人代币或API代币).使用Azure门户配置用户(不是API令牌)的身份验证和授权.使用Azure API Management(或其他服务)来管理API令牌. 差异#2:Web API模板中的MVC支持 ASP.NET Web API 自动包含MVC以显示帮助页面.这些与OpenAPI(Swagger)自生成文档不同. ASP.NET Azure API应用程序 不会自动包含MVC或帮助页面 差异#3:支持Web API中的UI文件 ASP.NET Web API 包括区域,内容,HomeController,字体,脚本和视图 ASP.NET Azure API应用程序 差异#4:Web API模板中的更多启动配置 ASP.NET Web API public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } } ASP.NET Azure API应用程序 public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); } } 差异#5:Azure API模板中的OpenAPI(Swagger)支持 ASP.NET Web API public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public void Post([FromBody]string value) { } // PUT api/values/5 public void Put(int id,[FromBody]string value) { } // DELETE api/values/5 public void Delete(int id) { } } ASP.NET Azure API应用程序 默认情况下启用OpenAPI(Swagger). OpenAPI JSON文档位于/ swagger / docs / v1 public class ValuesController : ApiController { // GET api/values [SwaggerOperation("GetAll")] public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } // GET api/values/5 [SwaggerOperation("GetById")] [SwaggerResponse(HttpStatusCode.OK)] [SwaggerResponse(HttpStatusCode.NotFound)] public string Get(int id) { return "value"; } // POST api/values [SwaggerOperation("Create")] [SwaggerResponse(HttpStatusCode.Created)] public void Post([FromBody]string value) { } // PUT api/values/5 [SwaggerOperation("Update")] [SwaggerResponse(HttpStatusCode.OK)] [SwaggerResponse(HttpStatusCode.NotFound)] public void Put(int id,[FromBody]string value) { } // DELETE api/values/5 [SwaggerOperation("Delete")] [SwaggerResponse(HttpStatusCode.OK)] [SwaggerResponse(HttpStatusCode.NotFound)] public void Delete(int id) { } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC 5捆绑和Azure CDN(查询字符串)
- asp.net-mvc-3 – MVC3中的模型级错误?
- asp.net – 带有MVC 2的自定义ViewModel强类型HTML Helper在
- asp.net-mvc – 获取Controller.OnException中的Action和Ac
- asp.net – viewStateEncryptionMode =“始终”不加密
- asp.net – 在ASP .NET(SMTP)中发送邮件
- asp.net – 无法找到请求的.Net Framework数据提供程序.它可
- asp.net – 隐藏gridView中的列
- asp.net-mvc – 将Angular与MVC 5捆绑在一起后出现格式错误
- asp.net-mvc – Dotlesscss @import语句:找不到文件.使用C
- asp.net-mvc – 集合的验证摘要
- asp.net-mvc – 使用具有Razor视图的Spark主布局
- asp.net-mvc – 具有Microsoft.AspNet.Identity的
- 【ASP.NET】12.ASP.NET Web开发实现log日志打印
- asp.net – 如何使用AspNetSqlMembershipProvide
- asp.net-mvc – 如何将应用程序用户放在与其余对
- asp.net-mvc – 如何从ASP.NET MVC的部分视图中获
- asp.net – 在没有子类化页面的情况下全局覆盖Pa
- AOP无法切入同类调用方法解决办法
- asp.net – 考虑到N2 CMS,但担心性能.这是否合理