小编Eri*_*k B的帖子

如何设计RESTful搜索/过滤?

我目前正在设计和实现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&parameter2=value2&parameter3=value3&parameter4=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.

api rest search filter

426
推荐指数
6
解决办法
31万
查看次数

面向方面编程与面向对象编程

像这里和整个世界的大多数开发人员一样,我多年来一直在使用面向对象编程(OOP)技术开发软件系统.因此,当我读到面向方面编程(AOP)解决传统OOP无法完全或直接解决的许多问题时,我会停下来思考,这是真的吗?

我已经阅读了很多信息,试图学习这个AOP范例的关键,并且我在同一个地方,所以,我想更好地理解它在现实世界应用程序开发中的好处.

有人有答案吗?

oop paradigms aop

192
推荐指数
6
解决办法
5万
查看次数

Git:"目前没有任何分支机构." 有没有一种简单的方法可以回到分支上,同时保持变化?

所以我在存储库中做了一些工作,当我即将提交时,我意识到我目前不在任何分支上.

在使用子模块时,这种情况发生了很多,我能够解决它,但这个过程很繁琐,而且我一直在想必须有一个更简单的方法来做到这一点.

有没有一种简单的方法可以回到分支上,同时保持变化?

git branch git-checkout

192
推荐指数
7
解决办法
16万
查看次数

如何以相反的顺序git登录?

我最近了解到我可以通过hg日志以相反的顺序打印历史记录:

hg log -r :
Run Code Online (Sandbox Code Playgroud)

所以当然我试过了:

git log -r :
Run Code Online (Sandbox Code Playgroud)

嗯,它不起作用.那么在git中执行相同操作的命令是什么?

git git-log

162
推荐指数
3
解决办法
4万
查看次数

在Ruby和/或Rails中定义自定义错误类型的位置?

是否有在Ruby库(gem)或Ruby on Rails应用程序中定义自定义错误类型的最佳实践?特别:

  1. 他们在结构上属于哪个项目?在其他地方有一个单独的文件,内联相关的模块/类定义?
  2. 有没有建立任何时候约定,当创建一个新的错误类型?

不同的图书馆有不同的做事方式,我没有注意到任何真实的模式.有些库总是使用自定义错误类型,而有些库根本不使用它们; 有些错误扩展了StandardError而其他错误有嵌套层次结构; 有些只是空类定义,有些则有各种巧妙的技巧.

哦,只是因为我觉得调用这些"错误类型"有点含糊不清,我的意思是:

class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails conventions

141
推荐指数
5
解决办法
5万
查看次数

83
推荐指数
6
解决办法
11万
查看次数

如何编写REST API?

我正在编写一个iPhone应用程序作为业余爱好项目,它需要一个Web服务来为它提供数据.它与我在工作中所做的并没有太大的不同,但在工作中我只写视图和控制器.其他人负责编写模型,通常客户端提供Web服务.

我以前做过一些网络编程,当每个人都使用MySQL和PHP时,所以我的技能有点过时,但我相信我能够使用我已经知道的技术.但是,我不想浪费时间使用过时的工具.我已经发现最先进的技术是编写REST API.我当时认为应该有一些非常好的框架,只要你定义了一个模型,它就会给你一个带有CRUD功能的REST API.

我想我的问题是:什么是启动和运行REST API的最快方法?我真的只想专注于编写iPhone应用程序,而不是花太多时间在这个API上.如果我能获得网络管理和修订历史,那将是很棒的.我还应该补充一点,API不应该是公开的,因此对身份验证的支持也会很好.

只是为了清楚.我不介意PHP框架.事实上它可能会更好,因为我知道我目前的托管支持它.

php mysql iphone rest

82
推荐指数
4
解决办法
6万
查看次数

Git - 如何查看方法/函数的更改历史记录?

所以我找到了关于如何查看文件的更改历史记录的问题,但是这个特定文件的更改历史记录很大,我真的只对特定方法的更改感兴趣.那么就可以看到该特定方法的变更历史吗?

我知道这需要git来分析代码,并且分析对于不同的语言会有所不同,但是在大多数语言中方法/函数声明看起来非常相似,所以我想也许有人已经实现了这个功能.

我目前使用的语言是Objective-C,我目前使用的SCM是git,但我很想知道这个功能是否适用于任何SCM /语言.

git methods history function objective-c

81
推荐指数
7
解决办法
2万
查看次数

iPad屏幕键盘的高度是多少?

我在这里寻找两个数字:纵向高度和景观高度.请勿以厘米或英寸为单位,而是以像素为单位.

keyboard height ipad

50
推荐指数
6
解决办法
5万
查看次数

Mercurial是否相当于git clean?

hg clean似乎不存在,这有点困扰我.这是Mercurial没有的功能,还是只是以不同的名称命名?

git mercurial

39
推荐指数
4
解决办法
2万
查看次数