Как заставить Нэнси использовать ответ application/json для целых чисел? Нэнси предполагает, что это StatusCode.

Я нашел этот поток Переопределить Content-Type по умолчанию для ответов в NancyFx и прокомментировал бы там, но еще не выполнил требование 50 повторений, так как это мой первый аккаунт после многих лет, которые скрываются здесь.

Поэтому, пожалуйста, потерпите меня, если эта проблема не оправдывает отдельную ветку. Я не могу решить это с помощью поиска, только боюсь. К теме...

--> Если у меня есть маршрут, который возвращает объект или строку json, нет проблем с возвратом именно этого. Например, в NancyModule

this.Get("/patient/{id}", args => this.dataSource.GetPatientById(args.id)); // returns Patient model

возвращает правильно сериализованный объект. Если я подключаюсь к конвейеру AfterRequest, я вижу, что context.Response.StatusCode — это OK, а context.Response.ContentType — это "application/json; charset=utf-8", как и ожидалось.

Теперь, если у меня есть маршрут, который возвращает только одно целое число, например:

this.Get("/patient/new"), args => this.dataSource.GetNextAvailablePatientId()) // returns int Id

тогда Нэнси, по-видимому, принимает этот идентификатор как HttpStatusCode. Конвейер AfterRequest теперь показывает, что context.Response.ContentType — это "text/html", а context.Response.StatusCode — это идентификатор, который, как я ожидал, будет фактическим содержимым.

Когда я вызываю маршрут GET /patient/new, я хочу, чтобы он возвращал только то есть 42, а не "42" или какое-то другое обозначение. Есть ли способ настроить Нэнси для возврата моего идентификатора таким образом?


person OllyWood    schedule 16.03.2020    source источник