我目前正在设计和实现PHP中的RESTful API.但是,我没有成功实施我的初始设计.
GET /users # list of users
GET /user/1 # get user with id 1
POST /user # create new user
PUT /user/1 # modify user with id 1
DELETE /user/1 # delete user with id 1
Run Code Online (Sandbox Code Playgroud)
到目前为止标准相当,对吗?
我的问题是第一个问题GET /users.我正在考虑在请求正文中发送参数来过滤列表.这是因为我希望能够在不获取超长URL的情况下指定复杂的过滤器,例如:
GET /users?parameter1=value1¶meter2=value2¶meter3=value3¶meter4=value4
Run Code Online (Sandbox Code Playgroud)
相反,我希望有类似的东西:
GET /users
# Request body:
{
"parameter1": "value1",
"parameter2": "value2",
"parameter3": "value3",
"parameter4": "value4"
}
Run Code Online (Sandbox Code Playgroud)
它更具可读性,为您提供设置复杂过滤器的绝佳机会.
无论如何,file_get_contents('php://input')没有返回请求的请求体GET.我也尝试过http_get_request_body(),但我正在使用的共享主机没有pecl_http.不确定它会有所帮助.
我发现了这个问题,并意识到GET可能不应该有一个请求体.这有点不确定,但他们建议不要这样做.
所以现在我不知道该怎么做.你如何设计RESTful搜索/过滤功能?
我想我可以使用POST,但这似乎不太RESTful.
像这里和整个世界的大多数开发人员一样,我多年来一直在使用面向对象编程(OOP)技术开发软件系统.因此,当我读到面向方面编程(AOP)解决传统OOP无法完全或直接解决的许多问题时,我会停下来思考,这是真的吗?
我已经阅读了很多信息,试图学习这个AOP范例的关键,并且我在同一个地方,所以,我想更好地理解它在现实世界应用程序开发中的好处.
有人有答案吗?
所以我在存储库中做了一些工作,当我即将提交时,我意识到我目前不在任何分支上.
在使用子模块时,这种情况发生了很多,我能够解决它,但这个过程很繁琐,而且我一直在想必须有一个更简单的方法来做到这一点.
有没有一种简单的方法可以回到分支上,同时保持变化?
我最近了解到我可以通过hg日志以相反的顺序打印历史记录:
hg log -r :
Run Code Online (Sandbox Code Playgroud)
所以当然我试过了:
git log -r :
Run Code Online (Sandbox Code Playgroud)
嗯,它不起作用.那么在git中执行相同操作的命令是什么?
是否有在Ruby库(gem)或Ruby on Rails应用程序中定义自定义错误类型的最佳实践?特别:
不同的图书馆有不同的做事方式,我没有注意到任何真实的模式.有些库总是使用自定义错误类型,而有些库根本不使用它们; 有些错误扩展了StandardError而其他错误有嵌套层次结构; 有些只是空类定义,有些则有各种巧妙的技巧.
哦,只是因为我觉得调用这些"错误类型"有点含糊不清,我的意思是:
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
Run Code Online (Sandbox Code Playgroud) 我正在编写一个iPhone应用程序作为业余爱好项目,它需要一个Web服务来为它提供数据.它与我在工作中所做的并没有太大的不同,但在工作中我只写视图和控制器.其他人负责编写模型,通常客户端提供Web服务.
我以前做过一些网络编程,当每个人都使用MySQL和PHP时,所以我的技能有点过时,但我相信我能够使用我已经知道的技术.但是,我不想浪费时间使用过时的工具.我已经发现最先进的技术是编写REST API.我当时认为应该有一些非常好的框架,只要你定义了一个模型,它就会给你一个带有CRUD功能的REST API.
我想我的问题是:什么是启动和运行REST API的最快方法?我真的只想专注于编写iPhone应用程序,而不是花太多时间在这个API上.如果我能获得网络管理和修订历史,那将是很棒的.我还应该补充一点,API不应该是公开的,因此对身份验证的支持也会很好.
只是为了清楚.我不介意PHP框架.事实上它可能会更好,因为我知道我目前的托管支持它.
所以我找到了关于如何查看文件的更改历史记录的问题,但是这个特定文件的更改历史记录很大,我真的只对特定方法的更改感兴趣.那么就可以看到该特定方法的变更历史吗?
我知道这需要git来分析代码,并且分析对于不同的语言会有所不同,但是在大多数语言中方法/函数声明看起来非常相似,所以我想也许有人已经实现了这个功能.
我目前使用的语言是Objective-C,我目前使用的SCM是git,但我很想知道这个功能是否适用于任何SCM /语言.
我在这里寻找两个数字:纵向高度和景观高度.请勿以厘米或英寸为单位,而是以像素为单位.
hg clean似乎不存在,这有点困扰我.这是Mercurial没有的功能,还是只是以不同的名称命名?