带可选参数的RESTful API

带可选参数的RESTful API,rest,api,model-view-controller,parameters,Rest,Api,Model View Controller,Parameters,以下是my API中的三个获取控制器操作: public HttpResponseMessage Get(int page = 1) { return Request.CreateResponse(HttpStatusCode.OK); } public HttpResponseMessage Get(string table) { return Request.CreateResponse(HttpStatusCode.OK);

以下是my API中的三个获取控制器操作:

    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成员具有相同的参数类型


提前谢谢

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


否则,为中间方法指定一个名称,而不是
Get

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

public async Task<HttpResponseMessage> Get(string table, string page = "1") {
公共异步任务Get(字符串表,字符串页=“1”){
然后我可以将字符串解析为整数。虽然它很难看,但它可以工作,它让我继续前进。(任何人都有更好的想法,我愿意接受建议!)

这些是API的GET方法,因此我认为重命名是不可能的。我需要区分对table的调用,page=7和table id=215。我不知道如何使用单个可选参数来实现这一点。我只想指出,您的问题没有足够的细节来证明这种解决方案的合理性。我理解这一点有时候,一个做作的例子比真实世界的代码更方便,但做作的例子可能会让其他人误入歧途