Я изо всех сил пытаюсь заставить страницу справки API отображать все мои конечные точки API и отображать их в том стиле, который я хочу.
Вот мои маршруты:
config.Routes.MapHttpRoute("Orgs", "v1/Orgs/{orgId}",
new { controller = "Orgs", orgId = RouteParameter.Optional });
config.Routes.MapHttpRoute("OrgDescendants", "v1/Orgs/{orgId}/Descendants",
new { controller = "Orgs", action = "OrgDescendants" });
Вот все мои методы контроллера:
[HttpGet]
public IEnumerable<Org> GetAllOrgs()
[HttpGet]
public Org Get(string orgId)
[HttpGet]
[ActionName("OrgDescendants")]
public List<Org> Descendants(string orgId)
[HttpPost]
public HttpResponseMessage Post(Org org)
[HttpPut]
public HttpResponseMessage Put(string orgId, Org org)
[HttpDelete]
public void Delete(string orgId)
И вот конечные точки, которые отображаются на странице справки:
GET v1/Orgs
POST v1/Orgs
PUT v1/Orgs/{orgId}
DELETE v1/Orgs/{orgId}
GET v1/Orgs/{orgId}/Descendants
Как видите, на странице справки отсутствует следующая конечная точка:
GET v1/Orgs/{orgId}
Я пробовал так много разных перестановок маршрутизации, что потерял след. Что бы я ни пытался, я всегда заканчивал тем, что некоторые конечные точки отсутствовали или были «неправильно» отформатированы.
Например, я получаю:
GET v1/Orgs/{orgId}/Get
когда я хочу:
GET v1/Orgs/{orgId}
или я получаю:
PUT v1/Orgs?orgId={orgId}
когда я хочу:
PUT v1/Orgs/{orgId}
Независимо от того, какую комбинацию я пробую, я не могу получить их так, как хочу. Любая помощь приветствуется!