Как проверить, действителен ли параметр запроса GET?C # - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу проверить, присутствует ли в запросе GET (это запрос GET) только идентификатор клиента, а не другие параметры.Как я должен проверить это в текущем контексте и что является исключением, которое я должен вернуть?

public JObject GetStatus(GetStatusRequest request)
{
    var responseArr = new JArray();
    var customers = GetCustomers(request.CustomerId);

    foreach (var c in customers)
    {
        responseArr.Add(FormatRequest(customers));
    }

    return new JObject
    {
        ["customers"] = responseArr
    };
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы можете попробовать это:

    [HttpGet]
    public HttpResponseMessage GetStatus(GetStatusRequest request)
    {
       try
       {
          if (request.CustomerId>0 && String.IsNullOrEmpty(request.Customername) /*&& other conditions*/)
          {
             var customers = GetCustomers(request.CustomerId);

             return Request.CreateResponse(HttpStatusCode.OK, customers );
          }
          else 
          {
               return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Your custom error message here");
          }
       }
       catch (Exception ex)
       {
           return Request.CreateErrorResponse(HttpStatusCode.BadRequest, new HttpError(ex.Message));
       }
    }
0 голосов
/ 27 сентября 2018

Используя asp.net core 2.1, я бы сделал это так ...

public class CustomerListResponse {
    public List<YourCustomerClassName> Customers {get;set;}
}

public ActionResult<CustomerListResponse> GetStatus(GetStatusRequest request)
{
    // check request
    if(doyourcheckhere == false) {
        return BadRequest();
    }

    // load your data here. Do not think in JArray and JObject
    // simply use POCOs
    var customers = GetCustomers(request.CustomerId);

    // if you need to reformat, create separate class and use e.g. automapper

    return new CustomerListResponse {
        Customers = customers
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...