Как заставить Нэнси использовать приложение / json Response для целых чисел? Нэнси предполагает, что они будут StatusCode - PullRequest
1 голос
/ 16 марта 2020

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

Так что, пожалуйста, потерпите меня, если эта проблема не оправдывает отдельную тему. Я не могу решить это, используя только поиск, боюсь. В топи c ...

-> Если у меня есть маршрут, который возвращает объект или строку 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" или другие обозначения. Есть ли способ настроить Нэнси для возврата моего идентификатора таким образом?

...