REST最佳实践

时间:2015-10-08 05:34:26

标签: rest

对于REST服务,最佳做法是接受完整的请求作为您服务的输入(如下所示 - 选项A),或者我们是否应接受选项中的各个参数 - B:

选项 - 答:

 @GET
        @Produces("text/plain")
        public String hello(@PathParam("id") int id, @BeanParam etc.) {
    }

选项 - B

import pywinauto, time, pyuac
import subprocess 

if not pyuac.isUserAdmin():
    pyuac.runAsAdmin()  

pig = subprocess.Popen(["C:\Users\VAIBH PC\Downloads\windows.8.codec.pack.v2.0.5.setup.exe"], stdin=subprocess.PIPE) 

time.sleep(1.0)
pwa_app = pywinauto.application.Application()

w_handle = pywinauto.findwindows.find_windows(title=u'Windows 8 Codec Pack           Setup', class_name='#32770')[0]
window = pwa_app.window_(handle=w_handle)
window.SetFocus()

ctrl = window['OK']
ctrl.Click()

time.sleep(5)

w_handle = pywinauto.findwindows.find_windows(title=u'Windows 8 Codec Pack   Setup', class_name='#32770')[0]
window = pwa_app.window_(handle=w_handle)
window.SetFocus()

ctrl = window['Button']
ctrl.Click()



ctrl = window['Button2']
ctrl.Click()



w_handle = pywinauto.findwindows.find_windows(title=u'Windows 8 Codec Pack  Setup', class_name='#32770')[0]
window = pwa_app.window_(handle=w_handle)
window.SetFocus()

ctrl = window['Button2']
ctrl.Click()

2 个答案:

答案 0 :(得分:2)

我认为最好利用JAX-RS提供的支持从请求中提取内容,而不是直接在请求对象上工作。这将删除一些技术管道,您将能够专注于自己的处理。

此外,Servlet API并不是真正面向REST的。我的意思是,例如,关于路径变量/参数,您需要自己提取它们。

希望它可以帮到你, 亨利

答案 1 :(得分:0)

休息资源通常由其名称和路径参数(可选)标识。

示例:/ tweets / {123} - 这表示' 通过其ID(123)标识的推文集合向我发送推文'

其余的设计风格可能不会强制服务提供者通过路径/查询参数公开资源,但一般的想法是路径参数唯一地标识资源,查询参数将用作过滤器。

在您的情况下,显而易见的选择是获取路径参数,但您应该仅使用注入的请求对象来跟踪远程用户,会话ID 等内容。 。这不会用于识别资源,而是用于内部使用的东西。