Как передать объект класса Почтальон - PullRequest
2 голосов
/ 30 июня 2019

У меня есть API, который нуждается в трех параметрах: строка (dataType), класс (eloanInput) и bool (isCluster)

public HttpResponseMessage getEloanExcel(string dataType, EloanInput eloanInput, bool isCluster = false) 
{
   var exportDataService = new ExportDataService();
   var exportExcel = new ExportExcel(dataType);
   var inputParams = new CaseSearch.EloanInput();
   inputParams.SEARCH_TYPE = eloanInput.SEARCH_TYPE;
   inputParams.COUNTY_ID = eloanInput.COUNTY_ID;
   inputParams.TOWN_ID = eloanInput.TOWN_ID;
   inputParams.HOUSE_TYPES = (eloanInput.HOUSE_TYPES[0] == "-1" && eloanInput.HOUSE_TYPES.Count() == 1) ? null : eloanInput.HOUSE_TYPES;
   inputParams.HouseProject = (eloanInput.HouseProject[0] == "-1" && eloanInput.HouseProject.Count() == 1) ? null : eloanInput.HouseProject;
   inputParams.PUB_START_DT = eloanInput.PUB_START_DT;
   inputParams.PUB_END_DT = eloanInput.PUB_END_DT;
}

как на картинке ниже:

webapi

У меня проблема при тестировании API в Postman, я использую метод key, value для передачи своих параметров, и только eloanInput получает значение NULL, он не получает значения, которые я ему передал, но другие параметры действительно получают значения почтальоном.

    [Key]         [Value] 

    dataType      'Eloan' 

    eloanInput  { "SEARCH_TYPE": 2,
                "COUNTY_ID": "-1",
               "TOWN_ID": "-1",
               "PUB_START_DT": "2006/11/22",
               "PUB_END_DT": "2006/12/15",
               "HOUSE_TYPES": ["01", "02", "03"],
               "HouseProject": [1, 2, 3, 4, 5],
               "DONE_START_DT": "88",
               "DONE_END_DT": "108",
               "FLOOR_FROM": "1",
               "FLOOR_TO": "18",
               "BUILD_AREA_FROM": "2",
               "BUILD_AREA_TO": "48",
               "CASE_TYPE": [1, 2, 3, 4, 5],
               "CASE_CATEGORY": [1, 2, 3, 4],
               "CASENM_KEYWORD": "12"} 

   isCluster    false

Запрос почтальона:

postman api testing

1 Ответ

1 голос
/ 30 июня 2019

Я бы отправил эти данные из тела запроса (с помощью [FromBody]) и изменив его на метод [HttpPost] вместо [HttpGet].

Ваш обновленный код метода:

[HttpPost]
public HttpResponseMessage getEloanExcel(string dataType, [FromBody] EloanInput eloanInput, bool isCluster = false)
{
   // your code
}

и запрос от почтальона:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...