Javascript REST方法的URL

Javascript REST方法的URL,javascript,rest,Javascript,Rest,我正试图找到正确的方法,以restful的方式表示以下方法 假设我有x台服务器,它们运行Windows、Linux和Unix 每个服务器都可以对其执行ping、关机和用户操作 API不了解服务器,因此请求必须提供IP地址、服务器类型和操作类型(它确实知道) 考虑到这一点,我想到了这些简单的URL,但它们一点都不是restful的: /192.168.1.3/Linux/ping /192.168.1.5/windows/shutdown 我应该走安静的路线吗?或者,对于一个简单的web A

我正试图找到正确的方法,以restful的方式表示以下方法

假设我有x台服务器,它们运行Windows、Linux和Unix

每个服务器都可以对其执行ping、关机和用户操作

API不了解服务器,因此请求必须提供IP地址、服务器类型和操作类型(它确实知道)

考虑到这一点,我想到了这些简单的URL,但它们一点都不是restful的:

/192.168.1.3/Linux/ping 
/192.168.1.5/windows/shutdown 
我应该走安静的路线吗?或者,对于一个简单的web API来说,上面的内容可以吗

如果是restful,它会是这个样子吗

GET /servertypes/{servertypeId}/actions/{actionId}?serverip=192.168.1.4

这对我来说似乎更有意义:


GET/servertypes/{servertypeId}/{serverip}/{action}

在我看来,您应该重新考虑您的设计

通过将命令名放在URL中,可以有效地覆盖HTTP方法的语义,URL表示作用域信息<代码>获取请求。忽略底层协议不被认为是RESTful的

这里的RPC模型看起来并不真正符合REST的原则。在我看来,你是想把一个方形的钉子敲进一个圆孔里

您还应该问问自己,是否真的有必要公开底层操作系统。是否要调用特定于系统的命令?是否可以运行任何可执行文件,还是只运行几个常见的可执行文件?您是否应该关心它是UNIX机器上的
grep
,还是Windows机器上的
findstr
?客户是否关心他们是否使用Windows或Linux机器


你可以选择一个类似于乌扎尔·萨吉德建议的简单模式。它可能会正常工作。只是不要称之为宁静,因为它不是

哎呀,我点击了“添加评论”来快速。为汤姆的回复干杯。关于操作系统的一点是它需要正确的命令来运行,因为api不知道服务器类型,只是从ip知道,所以问题是请求应该如何呈现信息我读到的关于restful api的所有内容都表明Uzair的URL不正确,这就是我问这个问题的原因。我不认为rest是答案,但我想向各位专家提出一个问题。认为RPC可能最合适似乎更合适“RPC是由客户端启动的,它向已知的远程服务器发送请求消息,以使用提供的参数执行指定的过程。”@亚当,我忍不住想知道你为什么要想出这样的解决办法。当您想在特定的机器上执行某些操作时,建立SSH/远程桌面连接不是更容易、更安全吗?其想法是从web开发人员那里提取繁重的负载,让api来处理。编写一个HTML/javascript应用程序来运行命令应该很简单。