RESTful API с необязательными параметрами - PullRequest
0 голосов
/ 05 декабря 2018

Ниже приведены три действия Get controller в моем 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);
    }

Как я могу отредактировать функцию middle, чтобы принять необязательный параметр страницы, как и первый?Когда я изменяю его на

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

, я получаю сообщение о том, что уже есть член Get с такими же типами параметров.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Я решил эту проблему, добавив в метод middle необязательный строковый параметр:

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

Затем я могу разобрать строку в целое число.Это некрасиво, но это работает, и это заставляет меня двигаться вперед.(У кого есть идея получше, я открыт для предложений!)

0 голосов
/ 05 декабря 2018

Не изменяйте средний метод вообще;удали это.Затем сделайте id необязательным для последнего метода.

В противном случае присвойте среднему методу имя, отличное от Get.

...