StatusCode 辅助方法
StatusCode Helper Method
我正在为我的 ASP.NET Core 2.0 API 方法创建一个辅助方法,它将 return 基于我从后端逻辑获得的响应的状态代码。我正在创建辅助方法来消除多个 API 方法中的重复代码。
我不确定我的辅助方法需要什么数据类型 return。到目前为止,这是我得到的:
public static StatusCodes GetHttpStatus(string type)
{
// I have some logic that I process here
switch(type)
{
case "Success":
return StatusCodes.Status200Ok;
case "Unauthorized":
return StatusCodes.Status401Unauthorized;
}
}
我想从我的 API 方法调用辅助方法:
public async Task<IActionResult> Get()
{
// Call my backend and get data
var response = await _myServiceMethod.GetData();
if(response.Type == "Success")
return Ok(response.Data);
return HelperMethods.GetHttpStatus(response.type);
}
我的 GetHttpStatus()
方法需要 return 什么?是Microsoft.AspNetCore.Http.StatusCodes
吗?
Microsoft.AspNetCore.Http.StatusCodes
成员是 int 值。
public const int Status200OK = 200;
所以声明int
.
public static int GetHttpStatus(string type)
{
case "Success":
return StatusCodes.Status200OK;
}
如果您的目标是直接从控制器 return 您可以定义一个基础控制器。
public abstract class BaseApiController<T> : Controller where T : MyApiContent
{
public virtual IActionResult ApiResult(string status, T content)
{
switch(status)
{
case "Success":
return Ok(content);
case "Unauthorized":
return Unauthorized();
}
}
}
public class MyApiContent
{
}
public class MyApiController : BaseApiController<MyApiContent>
{
public async Task<IActionResult> Get()
{
MyApiContent content = await GetData();
return ApiResult(content.type, content);
}
}
我正在为我的 ASP.NET Core 2.0 API 方法创建一个辅助方法,它将 return 基于我从后端逻辑获得的响应的状态代码。我正在创建辅助方法来消除多个 API 方法中的重复代码。
我不确定我的辅助方法需要什么数据类型 return。到目前为止,这是我得到的:
public static StatusCodes GetHttpStatus(string type)
{
// I have some logic that I process here
switch(type)
{
case "Success":
return StatusCodes.Status200Ok;
case "Unauthorized":
return StatusCodes.Status401Unauthorized;
}
}
我想从我的 API 方法调用辅助方法:
public async Task<IActionResult> Get()
{
// Call my backend and get data
var response = await _myServiceMethod.GetData();
if(response.Type == "Success")
return Ok(response.Data);
return HelperMethods.GetHttpStatus(response.type);
}
我的 GetHttpStatus()
方法需要 return 什么?是Microsoft.AspNetCore.Http.StatusCodes
吗?
Microsoft.AspNetCore.Http.StatusCodes
成员是 int 值。
public const int Status200OK = 200;
所以声明int
.
public static int GetHttpStatus(string type)
{
case "Success":
return StatusCodes.Status200OK;
}
如果您的目标是直接从控制器 return 您可以定义一个基础控制器。
public abstract class BaseApiController<T> : Controller where T : MyApiContent
{
public virtual IActionResult ApiResult(string status, T content)
{
switch(status)
{
case "Success":
return Ok(content);
case "Unauthorized":
return Unauthorized();
}
}
}
public class MyApiContent
{
}
public class MyApiController : BaseApiController<MyApiContent>
{
public async Task<IActionResult> Get()
{
MyApiContent content = await GetData();
return ApiResult(content.type, content);
}
}