Как конечная точка HTTP / URI связана с вызываемым им WebAPI - PullRequest
0 голосов
/ 20 января 2020

это простой вопрос, но для одного новичка в развертывании веб-приложений это (по крайней мере для меня) довольно фундаментально, но не совсем ясно в любом из примеров, которые я взял из Интернета (кажется, все они принять определенный уровень знаний). У меня есть служба WebAPI (согласно проекту VS под названием PiHttpTransferService), у нее есть apicontroller:

 Namespace Controllers

Public Class PIInterfaceController
    Inherits ApiController
    <Route("{forThisTime}/{piServerName}/{piPntSrc}/{piTagFilter}")>
    <HttpGet>
    Public Function GetPiData(ByVal forThisTime As DateTime, ByVal piServerName As String, ByVal piPntSrc As String, ByVal piTagFilter As String) As String
        Dim result As String = Nothing

        'Code to do get data from a database

       Return result
    End Function


End Class
 End Namespace

Как это относится к запросам, сделанным из веб-браузера. Прошу прощения за вопрос, который, я уверен, является довольно основополагающим c знанием для большинства здесь, но начальная высота для моего бара довольно низкая: -)

С уважением, Пол.

1 Ответ

0 голосов
/ 21 января 2020

Обычно вы развертываете свой API на каком-либо сервере, что делает его доступным по определенному адресу / URL.
В IIS это веб-сайт, с которым связаны привязки, и эти привязки будут содержать подробности о вещах например, имя хоста или IP-адрес и порты, на которые должен реагировать этот веб-сайт. например, https://www.example.com

Когда вы запускаете / отлаживаете свой проект в Visual Studio, он позаботится об этом за вас и запустит сокращенный веб-сервер, который указывает на ваш скомпилированный код с привязкой для вашего проекта, который имеет случайный номер порта, связанный с ним. Вот почему вы видите такие вещи, как http://localhost:7812 в вашем браузере.

Маршруты, которые вы определяете в своих методах контроллера, - это пути, которые должны быть добавлены к имени хоста для нацеливания на этот конкретный метод. Таким образом, из вышеприведенного контроллера вы можете получить доступ к методу с помощью вызова, аналогичного следующему (имена хостов, например, только: P):

https://www.example.com/2020-01-01T00:00:00Z/servername/1/tag/
http://localhost:7812/2020-01-01T00:00:00Z/servername/1/tag/

Это кратко и, надеюсь, полезно, но есть много о вещах, которые можно обсудить здесь, таких как настройка привязок или DNS или, возможно, даже пулов приложений. Я надеюсь, что это доходит до первоначальной сути вашего вопроса.

...