据我所知,没有RESTful方法可以对资源进行修改.为了做到这一点,你必须将资源作为一个整体,覆盖以前的表示.我认为这是问题的根源,特别是当资源具有大量表示时.
我相信这暗示了HTTP1.1中缺少动词:类似于MODIFY或PATCH.甚至WebDAV都没有这个动词(它有PROPPATCH,其概念类似,但不适用于资源).
对于真实世界的REST,当前的HTTP 1.1动词集是不是太有限了?
编辑:我在IETF找到了关于PATCH动词的提议
http://tools.ietf.org/html/draft-dusseault-http-patch-15
此规范定义了用于对资源应用部分修改的新HTTP/1.1 [RFC2616]方法PATCH.
需要一种新方法来提高互操作性并防止错误.PUT方法已经定义为使用完整的新主体覆盖资源,并且不能重用以进行部分更改.否则,代理和缓存甚至客户端和服务器可能会对操作结果感到困惑.早期的HTTP规范中提到了PATCH,但没有完全定义.
据我所知,这种动词的唯一问题是缺乏幂等性.
编辑: 截至2010年3月,RFC 5789存在(HTTP的PATCH方法).
在这个简单的sparql查询中,我得到了一个对象列表,其对象是42
SELECT ?v WHERE { ?v ?p 42 }
Run Code Online (Sandbox Code Playgroud)
如果我将?p添加为变量
SELECT ?v ?p WHERE { ?v ?p 42 }
Run Code Online (Sandbox Code Playgroud)
我将获得每行两个实体,主题和谓词.如果我想要三个实体怎么办,包括42个?就像是:
SELECT ?v ?p ?m WHERE { ?v ?p (42 as m) }
Run Code Online (Sandbox Code Playgroud) 根据我发现的文件
数学模式下的\ mbox不使用当前的数学字体; 而是使用周围运行文本的字体.
在数学模式中,我想写一些像_ {\ mbox {foo}}的东西.如果我使用它,foo会非常大,太大.如果我写a_ {foo},foo将以斜体显示.
拥有非斜体,小文本的神奇技巧是什么?
我真的不知道如何在Web开发中正确地执行从离线开发到实时web服务器的部署.我主要依靠直觉,但这或多或少是我到目前为止所做的:我在python或php中有一个web应用程序,我在一个实时网络服务器上托管它.我使用的是离线开发版本,其源代码在svn下.
现在,当我开发离线版本时,我将执行对svn的提交.什么时候发布,我可以:
我通常会做第二次,但如果我必须在实时部署之前升级数据库,我通常会编写升级sql脚本,并首先在实时数据库上运行它们,然后结帐.
这项任务的最佳实践是什么?
我被BOINC吸引到了我的一个小项目.我听说过BOINC,但没有多看它是如何工作的,主要是因为我现在正专注于其他优先事项.我想知道的是,如果你们中的任何人真的试图为BOINC编程并且在分布式计算机网络上运行程序.我特别感兴趣的是以下问题:
我更喜欢现实生活.维基百科可以是一个很好的信息来源,但我更喜欢实际的用例.
在makefile中,以at符号为前缀的行禁用输出的打印.我有一个makefile,其中每一行都以at为前缀,但是对于调试我需要看看发生了什么.有没有办法告诉make忽略at并输出该行?调试过多,-n选项打印它们,但没有做任何事情(这是干运行)
如果在C++中我有一个类longUnderstandableName.对于该类,我有一个包含其方法声明的头文件.在该类的源文件,我必须写longUnderstandableName::MethodA,longUnderstandableName::MethodB等等,无处不在.
我能以某种方式利用命名空间或别的东西,所以我可以只写MethodA和MethodB,类源文件中,也只有在那里?
我正在阅读PEP-3153,但我不明白它想要解决的问题是什么.你能解释一下吗?
我正在使用UUID,但它们不是特别好读,写和通信.所以我想对它们进行编码.我可以使用base64或base32,但无论如何它们都不容易:base64有大写字母和符号.Base32有点好,但你仍然可以获得笨拙的东西.
我想知道是否有一种漂亮而干净的方法将数字编码成可口的音素,因此要获得更好的可读性并希望有点压缩.
我想知道在元类上声明的方法会发生什么.我希望如果你在元类上声明一个方法,它最终将成为一个类方法,但是,行为是不同的.例
>>> class A(object):
... @classmethod
... def foo(cls):
... print "foo"
...
>>> a=A()
>>> a.foo()
foo
>>> A.foo()
foo
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试定义一个元类并给它一个方法foo,它似乎对类有效,而不是实例.
>>> class Meta(type):
... def foo(self):
... print "foo"
...
>>> class A(object):
... __metaclass__=Meta
... def __init__(self):
... print "hello"
...
>>>
>>> a=A()
hello
>>> A.foo()
foo
>>> a.foo()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'foo'
Run Code Online (Sandbox Code Playgroud)
这到底发生了什么?
编辑:碰撞问题