我正在为我的ASP.NET Core 2.0 API方法创建一个帮助方法,该方法将根据我从后端逻辑获得的响应返回状态代码。我正在创建辅助方法来消除多种API方法中的重复代码。
我不确定我的帮助方法需要返回什么数据类型。这是我到目前为止所得到的:
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方法中调用helper方法:
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()
方法返回什么内容?是Microsoft.AspNetCore.Http.StatusCodes
吗?
答案 0 :(得分:0)
Microsoft.AspNetCore.Http.StatusCodes
成员是int值。
public const int Status200OK = 200;
声明int
。
public static int GetHttpStatus(string type)
{
case "Success":
return StatusCodes.Status200OK;
}
如果您的目标是直接从Controller返回,则可以改为定义基本控制器。
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);
}
}