Каков наилучший способ сделать запрос httpget для пользовательского метода контроллера GetTestInfoByTestTypeID.Ниже вы найдете мое клиентское приложение, контроллер API, модель и dbcontext.Запросы TestInfo и TestInfo / ID работают, но метод GetTestInfoByTestTypeID не работает.
Клиент
request.Method = HttpMethod.Get;
// request.RequestUri = new Uri(ConstantsCS.c_BaseURL + "/TestIT/TestInfo"); WORKS
// request.RequestUri = new Uri(ConstantsCS.c_BaseURL + "/TestIT/TestInfo/4"); WORKS
request.RequestUri = new Uri(ConstantsCS.c_BaseURL + "/TestIT/TestInfo/GetTestInfoByTestTypeID/4"); //DOES NOT WORK
HttpResponseMessage responsemsg = await client.SendAsync(request);
if (responsemsg.StatusCode == System.Net.HttpStatusCode.OK)
{
}
Метод API-контроллера:
#region "TestIT/Testinfo/GetTestInfoByTestTypeID/1"
[HttpGet("{TestTypeId}", Name = "GetTestInfoByTestTypeID")]
public IEnumerable<TestInfo> GetTestInfoByTestTypeID([FromRoute] int TestTypeId)
{
try
{
List<TestInfo> tstinfoIn = _context.TestInfo.ToList();
List<TestTypeInfo> tsttypinfoIn = _context.TestTypeInfo.ToList();
List<TestInfo> tstinfoCombo = new List<TestInfo>();
tstinfoCombo = tstinfoIn.Select(c => new TestInfo()
{
TestId = c.TestId,
TestShortDescription = c.TestShortDescription,
TestLongDescription = c.TestLongDescription,
TestTypeId = c.TestTypeId,
TestTypeInfos = GetTestTypeInfo(tsttypinfoIn, c.TestTypeId)
}).ToList();
tstinfoCombo = tstinfoCombo
.Where(x => x.TestTypeId == TestTypeId)
.Select(x => new TestInfo()
{
TestId = x.TestId,
TestShortDescription = x.TestShortDescription,
TestLongDescription = x.TestLongDescription,
TestTypeId = x.TestTypeId,
TestTypeInfos = x.TestTypeInfos
}).ToList();
return tstinfoCombo;
}
catch (Exception ex)
{
return null;
}
}
#endregion
TestInfo Модель:
namespace TestITWebService.Model
{
public partial class TestInfo
{
public int TestId { get; set; }
public string TestShortDescription { get; set; }
public string TestLongDescription { get; set; }
public int TestTypeId { get; set; }
public ICollection<TestTypeInfo> TestTypeInfos { get; set; }
}
}
DBContext:
#region "TestInfo"
modelBuilder.Entity<TestInfo>(entity =>
{
entity.HasKey(e => e.TestId);
entity.HasIndex(e => e.TestShortDescription)
.HasName("IX_TestInfo")
.IsUnique();
entity.Property(e => e.TestId).HasColumnName("TestID");
entity.Property(e => e.TestLongDescription)
.HasMaxLength(150)
.IsUnicode(false);
entity.Property(e => e.TestShortDescription)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.TestTypeId).HasColumnName("TestTypeID");
});
#endregion