ASP. NET (веб-страницы) => ASP. NET CORE 3.1 WebAPI - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь подключить свою устаревшую систему к моему новому API Core 3.1, но полезная нагрузка, которую создает устаревшее веб-приложение, не работает в моем API, потому что все значения равны нулю, но если я тестирую в почтальоне, все работает как и ожидалось Это полезная нагрузка от почтальона:

{"{"UserId":0,"UserGroup":"something","AccessToken":"","CreatedBy":"something","From":"2020/01/01","To":"2020/07/10","TokenName":"something"}
}

И это из устаревшего веб-приложения:

{"payload":{"UserId":0,"UserGroup":"soemthing","AccessToken":"","CreatedBy":"something","From":"2020/01/01","To":"2020/07/10","TokenName":"something"}}

Как вы можете заметить, полезная нагрузка почтальона не включает "полезную нагрузку "в то время как унаследованные есть, но забавно то, что это поддерживается в унаследованном приложении, а это означает, что я могу отправлять полезные данные как есть, и синтаксический анализатор выполнит свою работу. Итак, есть какие-нибудь подсказки о том, что здесь может происходить?

1 Ответ

0 голосов
/ 11 июля 2020

Из предоставленной вами информации кажется, что устаревший API создаст объект json со свойством с именем payload.

{
  "payload" : { /* the object contains UserId, UserGroup, etc */ }
}

Однако ваш. NET Core API принимает json объект со следующей структурой:

{
  userId: 0,
  UserGroup: "some group",
  /* other properties... */
}

Поэтому вам может потребоваться определить модель привязки со свойством с именем Payload в. NET Core API:

public class LegacyAppBindingModel
{
  public PayloadBindingModel Payload { get; set; }

  public class PayloadBindingModel
  {
    public int UserId { get; set; }
    /* other properties i.e. UserGroup, AccessToken, etc. */
  }
}
...