Я работал с системой API Infusionsoft в .Net, и я нахожу функциональность "selectedFields", чтобы сделать большой смысл.выбор возвращаемых значений из .Net MVC API
Я в настоящее время делаю систему API и хотел бы построить подобную функциональность.
Я уверен, что у него есть имя, но и для жизни меня я не могу понять, что искать в чтобы получить некоторые рабочие примеры.
Мое единственное решение что-то вроде ниже
Data.DataDataContext _db = new Data.DataDataContext();
[HttpGet]
public IHttpActionResult load(int id, [FromUri] string rtnValue)
{
var property = _db.PROPERTies.Where(p => p.id == id);
if (!property.Any())
return NotFound();
var returnProperty = new Dictionary<string, string>();
var prop = property.FirstOrDefault();
if (rtnValue.Contains("Id")) returnProperty.Add("Id", prop.id.ToString());
if (rtnValue.Contains("Energy")) returnProperty.Add("Energy", prop.energy.ToString());
return Ok(returnProperty);
}
Переход к URL /api/property/load/1/"Id","Energy"....
возвращает то, что я ожидал бы [{ "Id": "1", "Energy": "45" }]
так это, кажется, работает в этом направлении. Это скорее оптимизация моего кода. Я уверен, что могу сделать это лучше.
В идеале я хочу добавить List<string>
к пройденному rtnValue
переменной, но тогда я не знаю, как я могу передать значения в API тогда, инстинкт подсказывает мне URL будет выглядеть /api/property/load/1/["Id", "Energy"]
, но это возвращается с ошибка.
Любая помощь в том, как лучше оптимизировать этот код, была бы удивительной. Формат
Это не так много, как вернуть. На самом деле это нормально. Это позволяет пользователю выбирать значения, которые возвращаются из базы данных. –
Моя ошибка. Я не знаю, как это сделать, что не будет включать в себя размышления. Вы можете скомпоновать рефлексию на вспомогательный метод и сделать некоторое кэширование, чтобы значительно повысить производительность, но, кроме того, единственным другим способом, который я знаю, было бы создание/компиляция класса C# на лету и использование этого вместо этого, больше беспорядка. – Basic