gpt4 book ai didi

asp.net - Visual Studio 中 Web API 和 Azure API APP 的区别

转载 作者:行者123 更新时间:2023-12-02 11:04:43 28 4
gpt4 key购买 nike

当创建新的 ASP.NET Web 应用程序以开发 API 并将其托管在 Azure 中时,我有两个选择:

  • 网络 API
  • Azure API 应用

我可以创建一个 Web API APP 并将其托管在 Azure API APP 中吗?那么它们同时存在的主要原因是什么?

enter image description here

最佳答案

它们只是不同的起点,具体取决于您的需求。

Azure API 是一个精简的仅 API 模板,支持 OpenAPI。

ASP.NET Web API 是一个完整的 ASP.NET MVC 应用程序,主要用于支持 API。

差异 1:Web API 模板中的身份验证支持

ASP.NET Web API

支持身份验证选择(无、个人用户、工作或学校、Windows)。 Screenshot showing selection of authentication support

ASP.NET Azure API 应用

期望客户端提供 token (不记名 token 或 API token )。使用 Azure 门户配置用户身份验证和授权(不是 API token )。使用 Azure API 管理(或其他服务)来管理 API token 。 Screenshot showing unavailable selector for authentication support

差异#2:Web API 模板中的 MVC 支持

ASP.NET Web API

自动包含 MVC 以显示帮助页面。这些与 OpenAPI (Swagger) 自行生成的文档不同。 Screenshot showing MVC option preselected, non-editable

ASP.NET Azure API 应用

不会自动包含 MVC 或帮助页面 Screenshot showing MVC option not selected, editable

差异#3:Web API 中 UI 的支持文件

ASP.NET Web API

包括区域、内容、HomeController、字体、脚本和 View Screenshot showing Solution Explorer with expanded assets

ASP.NET Azure API 应用

Screenshot showing Solution Explorer with minimal assets

差异#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 - Visual Studio 中 Web API 和 Azure API APP 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819233/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com