无法击中任何API方法

时间:2018-06-23 20:49:22

标签: c# asp.net-core

我有这个控制器:

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-jvm-deps</artifactId>
    <version>1.0.6</version>
</dependency>

我的创业班:

val obj = new MyObject()
import obj.innerToValue
val x : Int = obj.intVal

我一直在试图与邮递员打

[Route("api/[controller]")]
public class UsersController : Controller
{
    private readonly IDatingRepository _repo;

    public UsersController(IDatingRepository repo)
    {
        _repo = repo;
    }

    [HttpGet]
    public async Task<IActionResult> GetUsers()
    {
        var users = await _repo.GetAllUsers();
        return Ok(users);
    }

    [HttpGet]
    public async Task<IActionResult> GetUser(int id)
    {
        var user = await _repo.GetUser(id);
        if (user != null)
            return Ok(user);
        return NoContent();
    }
}

但无法使用任何一种方法。
我创建了一个示例控制器,但仍然无法找到该方法。
从邮递员发送请求后,始终找不到404。我知道这意味着我正在寻找的资源不存在。

2 个答案:

答案 0 :(得分:1)

尝试http://localhost:port/api/users

[HttpGet]使其使用http get方法,它没有将操作名称添加到路由,因此该路由仍然只是控制器的基本路由。如果需要,请使用[HttpGet("[action]")]

对于第二项操作,您可能希望[HttpGet("{id}")]能够使用/api/users/123

答案 1 :(得分:0)

我认为您可以这样做

[Route("api/[controller]/[action]")]

然后您只需要像/ api / users / getUsers这样的邮递员来呼叫