asp.net-web-api - HTTP 端点/URI 如何与它调用的 WebAPI 相关
问题描述
这是一个简单的问题,但对于部署基于 Web 的应用程序的新手来说,它(至少对我而言)非常基础,但在我从 Web 上收集的任何示例中都没有明确明确(它们似乎都假设一个 certian知识水平)。我有一个 WebAPI 服务(根据名为 PiHttpTransferService 的 VS 项目),它有一个 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
这与从 Web 浏览器发出的请求有何关系。抱歉,我确信对这里的大多数人来说是非常基本的知识,但是我的酒吧的起始高度非常低:-)
亲切的问候保罗。
解决方案
通常,您将 API 部署到某处的服务器,这使得它可以在特定的地址/URL 上使用。
在 IIS 中,这是一个网站,它具有与之关联的绑定,并且这些绑定将包含诸如主机名或 IP 地址以及该网站应响应的端口之类的详细信息。例如https://www.example.com
当您在 Visual Studio 中运行/调试项目时,它会为您处理此问题并启动一个精简的 Web 服务器,该服务器指向您的已编译代码,并为您的项目绑定一个具有与之关联的随机端口号的绑定。这就是您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,甚至可能是应用程序池。我希望这可以解决您问题的最初症结。
推荐阅读
- css - Css 性能:更好地处理带有标签名称或类的子元素?
- node.js - 如何在 nginx 中部署的 https 网站访问自己的 Node.js 服务器
- java - 将 json 对象附加到现有的 json 对象数组
- ffmpeg - 如何使用ffmpeg将管道中的图像序列覆盖在视频流上?
- angular - TypeError:在切换到 Angular 6 和 RxJS 6 后,预期流的无效对象
- javascript - 如何使用 ul 选择下拉列表的值
- android - 在 kotlin 项目中使用房间持久性库时编译错误
- ios - 在 CNContactPicker 中更改取消和完成按钮的颜色
- swift - 如何在 Swift 中创建嵌套的字典元素?
- r - 奇怪的警告信息:在 FUN(X[[i]], ...) 中:强制引入的 NA