将根元素添加到响应模型
Add root element to response model
我正在写一个 ASP.NET 核心 API,它应该遵循现有的格式。
响应应始终以 json
中的数据元素开头
{
"data": {
"batch_id": null,
"created_at": "2019-01-29T16:58:04+00:00",
"current_operation": null,
"description": "This watch has a new name",
"model": {
"brand_id": null,
"created_at": null,
...
}
}
}
我创建了一个 class Batch
,其中包含我们看到的所有属性,我的控制器负责在后台对其进行序列化。
public class Batch
{
[JsonProperty("label")]
public string Label { get; set; }
[JsonProperty("serial_number")]
public string SerialNumber { get; set; }
[HttpGet("{id}")]
public ActionResult<Batch> Get(string id)
{
...
return batch;
}
有没有一种方法可以让每个有效负载都以 data
属性 开头?
我想避免写一个我必须用于每个响应的 class DataWrapper<T>
。
您可以只使用匿名对象来包装来自控制器的响应:
[HttpGet("{id}")]
public ActionResult<Batch> Get(string id)
{
...
return Ok(new { data = batch });
}
您可以使用 GenericClass
public class GenericResponseClass<T>{
public T data;
}
然后你可以将你的批处理(或任何其他)class传递给 GenericResposneClass,就像
public class Batch
{
[JsonProperty("label")]
public string Label { get; set; }
[JsonProperty("serial_number")]
public string SerialNumber { get; set; }
}
GenericResponseClass<Batch> response = new GenericResponseClass<Batch>();
Batch batch = new Batch();
batch.Label = "New Label";
batch.SerialNumber = "Serial Number";
response.data = batch;
然后 pass/serialize 你的 回复
我正在写一个 ASP.NET 核心 API,它应该遵循现有的格式。
响应应始终以 json
中的数据元素开头{
"data": {
"batch_id": null,
"created_at": "2019-01-29T16:58:04+00:00",
"current_operation": null,
"description": "This watch has a new name",
"model": {
"brand_id": null,
"created_at": null,
...
}
}
}
我创建了一个 class Batch
,其中包含我们看到的所有属性,我的控制器负责在后台对其进行序列化。
public class Batch
{
[JsonProperty("label")]
public string Label { get; set; }
[JsonProperty("serial_number")]
public string SerialNumber { get; set; }
[HttpGet("{id}")]
public ActionResult<Batch> Get(string id)
{
...
return batch;
}
有没有一种方法可以让每个有效负载都以 data
属性 开头?
我想避免写一个我必须用于每个响应的 class DataWrapper<T>
。
您可以只使用匿名对象来包装来自控制器的响应:
[HttpGet("{id}")]
public ActionResult<Batch> Get(string id)
{
...
return Ok(new { data = batch });
}
您可以使用 GenericClass
public class GenericResponseClass<T>{
public T data;
}
然后你可以将你的批处理(或任何其他)class传递给 GenericResposneClass,就像
public class Batch
{
[JsonProperty("label")]
public string Label { get; set; }
[JsonProperty("serial_number")]
public string SerialNumber { get; set; }
}
GenericResponseClass<Batch> response = new GenericResponseClass<Batch>();
Batch batch = new Batch();
batch.Label = "New Label";
batch.SerialNumber = "Serial Number";
response.data = batch;
然后 pass/serialize 你的 回复