#servicestack
Вопрос:
Я оцениваю пакет услуг JsonServiceClient, и запросы используют общую конечную точку /json/reply:
https://techstacks.io/json/reply/GetTechnology?slug=ServiceStack
Можно ли использовать конечные точки, объявленные в службах (например: [Маршрут(«/здравствуйте»)])?
Ответ №1:
.NET (C#,F#,VB.NET) JsonServiceClient использует определенные пользователем маршруты, поскольку они могут получить доступ к .Атрибуты сетевых метаданных, другие языки не могут, поскольку они не могут получить доступ к тем же метаданным среды выполнения, поэтому они обычно публикуются в комментариях для целей документации и используют предопределенные маршруты ServiceStack, которые по умолчанию включены во всех службах ServiceStack, что обеспечивает более простую универсальную реализацию, которая может вызывать любой API.
Все JsonServiceClient на всех языках также предлагают методы API, которые принимают строковый путь, который может использоваться для вызова API с использованием ваших пользовательских маршрутов, например:
client.get<GetTechnologyResponse>("/technology/ServiceStack")
client.get<GetTechnologyResponse>("https://techstacks.io/technology/Redis")
// https://techstacks.io/technology?Slug=ServiceStack
client.get<GetTechnologyResponse>("/technology", { Slug: "ServiceStack" })
а также отправлять DTO-запросы на пользовательские URL-адреса:
client.postToUrl("/custom-path", request, { Slug: "ServiceStack" });
client.putToUrl("http://example.org/custom-path", request);
Библиотека JS также содержит некоторые дополнительные API, которые могут помочь генерировать заполненные строки запросов для пользовательских маршрутов, например:
combinePaths("path","to","..","join") //= path/join
createPath("path/{foo}", {foo:1,bar:2}) //= path/1
createUrl("http://host/path/{foo}",{foo:1,bar:2}) //= http://host/path/1?bar=2