我有这个问题,在我的Response Body中返回我不想包含的数据,我想要返回的数据没有包含在那里。我尝试使用Swagger v1.0
退回数据
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"application/json"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"isSuccessStatusCode": true
}
预期回报
这是我的代码:
[HttpGet]
[Authorize]
public HttpResponseMessage GetStudent(int id)
{
try
{
var student = _studentService.Find(id);
return ModelHelper.ComposeResponse(HttpStatusCode.OK, student);
}
catch (Exception ex)
{
var exceptionMessage = ModelHelper.GetErrors(ex, _mailService);
ModelState.AddModelError(new ValidationResult(exceptionMessage));
}
return ModelHelper.ComposeResponse(HttpStatusCode.BadRequest, ModelHelper.GetModelStateErrors(ModelState));
}
帮助代码
public static HttpResponseMessage ComposeResponse(HttpStatusCode statusCode, object responseData)
{
var jsonResponse = JsonConvert.SerializeObject(responseData);
var resp = new HttpResponseMessage
{
StatusCode = statusCode,
Content = new StringContent(jsonResponse, Encoding.UTF8, Constants.Common.ApplicationJson)
};
resp.Content.Headers.ContentType = new MediaTypeHeaderValue(Constants.Common.ApplicationJson);
return resp;
}
答案 0 :(得分:0)
以下是使用CreateResponse函数进行此操作的一种方法。这将从您传递给CreateResponse函数的对象创建一个json输出。
响应将如下所示。
{ “Stud_id”:1, “Stud_name”: “测试”}
public class StudentObject
{
public int Stud_id { get; set; }
public string Stud_name { get; set; }
}
[HttpGet]
public HttpResponseMessage GetStudent(int id)
{
StudentObject studentObject = new StudentObject
{
Stud_id = 1,
Stud_name = "test"
};
return Request.CreateResponse(System.Net.HttpStatusCode.OK, studentObject);
}