Публикация / предоставление RESTful API с использованием WCF-WebHttp - PullRequest
0 голосов
/ 19 марта 2020

У меня есть требование предоставить / опубликовать sh службу API RESTful из BizTalk 2013 r2.

Я опубликовал службу в IIS, и когда я просматриваю ее, она работает, но я не могу позвонить API от SOAP пользовательского интерфейса. Я пытался использовать эту ссылку: Изучение возможностей REST в BizTalk Server 2013 (Часть 1: Предоставление конечных точек REST) ​​

В URL моего API есть 3 обязательных параметра (первые 3) и 2 необязательных ( последние 2). Я использовал сопоставление btsvariable.

Обязательный пример URL:

/rest/testlink/write/data/apiservice/V01/rs/call/search/{name}/{rows}/{starts}?year=<year>&AdditionalName=<additional>

Пример:

https://localhost/rest/testlink/write/data/apiservice/V01/rs/call/search/brown/99/true?year=2007,2008,2009&AdditionalName=true

В веб-сайте WCF HTTP-местоположение получения BizTalk использует /serviceapi/Service1.svc Но этот service1.sv c нигде не указан в примерном URL-адресе, ожидаемом для клиента.

Я выделил указанную выше переменную и также есть запрос ? и =. Итак, как я могу установить это в WCF-WebHttp и предоставить оставшийся API?

Как клиент, вызывающий эту службу, узнает параметры, если BizTalk использует приведенный ниже URL-адрес? Этот URL работает, когда я просматриваю, но я считаю, что это ссылка WSDL.

Как опубликовать sh API с параметрами запроса?

https://localhost/serviceapi/Service1.svc

1 Ответ

1 голос
/ 20 марта 2020

Местоположение получения BizTalk, если оно отображается с помощью веб-адаптера HTTP, отображается как .sv c. потому что он использует платформу WCF для включения возможностей REST. URL-адрес не является REST-URL в истинном смысле этого слова.

Вам понадобится маскировка URL-адреса, чтобы он выглядел как оставшийся URL-адрес. Это идеальный вариант использования для Azure управления API, поскольку он маскирует базовый URL.

Тот факт, что он имеет servce1.sv c, не должен иметь значения, так как клиент все еще сможет выполнять запросы GET в конечной точке, которую вы выставили

...