带有可选参数的RESTful API

时间:2018-12-04 22:37:57

标签: rest api model-view-controller parameters

以下是我的API中的三个Get控制器操作:

    public HttpResponseMessage Get(int page = 1) {
        return Request.CreateResponse(HttpStatusCode.OK);
    }

    public HttpResponseMessage Get(string table) {
        return Request.CreateResponse(HttpStatusCode.OK);
    }

    public HttpResponseMessage Get(string table, int id) {
        return Request.CreateResponse(HttpStatusCode.OK);
    }

如何像第一个一样编辑中间函数以接受可选的页面参数?当我将其编辑为

    public HttpResponseMessage Get(string table, int page = 1) {
        return Request.CreateResponse(HttpStatusCode.OK);
    }

我收到一条消息,说已经有一个具有相同参数类型的Get成员。

谢谢!

2 个答案:

答案 0 :(得分:0)

根本不修改中间方法;删除它。然后,在最后一个方法上使id为可选。

否则,给中间方法一个Get以外的名称。

答案 1 :(得分:-1)

我通过使Middle方法包含一个可选的字符串参数来解决了这个问题:

public async Task<HttpResponseMessage> Get(string table, string page = "1") {

然后我可以将字符串解析为整数。这很丑陋,但是有效,并且让我前进。 (任何人都有一个更好的主意,我愿意接受建议!)