Czy można używać okresów w Asp.Net Web Api Routes?

Pracuję nad przeniesieniem projektu API z surowych procedur obsługi HTTP, w których używam okresów w ścieżkach:

http://server/collection/id.format

Chciałbym śledzić ten sam schemat URL w wersji Web Api (self-hosted) i wypróbowałem to:

var c = new HttpSelfHostConfiguration(b);
c.Routes.MapHttpRoute(
    name: "DefaultApiRoute",
    routeTemplate: "{controller}/{id}.{format}",
    defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional },
    constraints: null
);

Niestety, wydaje się, że to nie rozwiązuje (spójne 404 na / foo, / foo / bar i /foo/bar.txt). Podobny wzór za pomocą ukośnika przed „formatem” działa dobrze:

var c = new HttpSelfHostConfiguration(b);
c.Routes.MapHttpRoute(
    name: "DefaultApiRoute",
    routeTemplate: "{controller}/{id}/{format}",
    defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional },
    constraints: null
);

Jeszcze nie zagłębiłem się w kod Web Api i zanim zacznę myśleć, zapytam tutaj, czy jest to znane, a może nawet uzasadnione ograniczenie w Web Api.

AKTUALIZACJA: Nie wspomniałem, że „id” i „format” są ciągami znaków, co okazuje się ważne dla rozwiązania tego pytania. Dodanie ograniczenia wykluczającego okresy z tokenu „id” rozwiązuje problem 404.

questionAnswers(5)

yourAnswerToTheQuestion