我正在使用Spring Security在Grails应用程序中托管REST Web服务,即:
@Secured(['IS_AUTHENTICATED_REMEMBERED'])
def save = {
println "Save Ride REST WebMethod called"
}
Run Code Online (Sandbox Code Playgroud)
我是从Android应用程序调用它.(调用不安全的服务工作正常.)
要调用该服务,我手动构建一个request(HttpUriRequest)并使用一个执行它HttpClient.
我想知道最佳实践是什么,以及如何实现它们......具体来说,我应该:
我想我可以选择1工作,但我不确定Spring Security是否允许(2),如果这是要走的路......谢谢!
- 而且,没有任何我想念的图书馆会为我做这一切吗?:)
我想将bin文件夹中生成的dll复制到vs2010中Post Build Event上的文件位置.
有人可以帮助我.
谢谢
关于这个问题,我有一个跟进的问题,我仍然感到困惑.我被要求兼顾REST与Web服务.根据我对REST的了解,它不是一个Web服务,因此你怎么能兼顾这两个?在这方面说REST时这个问题意味着什么?
我对REST原则非常熟悉,并阅读了相关的论文,维基百科条目,一堆关于这个主题的博客文章和StackOverflow问题,但仍然没有找到一个简单的常见案例答案:
我需要请求显示资源.根据资源的状态,我需要呈现只读或可编辑的表示.在这两种情况下,我都需要获取资源.如何构建URL以获取只读或可编辑的版本?
如果我的用户跟随链接GET /resource/<id>,那就足以向我表明他/她需要只读表示.但是,如果我需要为可编辑的表单提供服务,该URL看起来像什么?GET /resource/<id>/edit很明显,但它在URL中包含一个动词.改变这一点来GET /resource/<id>/editable解决这个问题,但在一个看似肤浅的层面.这就是它的全部 - 将动词改为形容词吗?
如果我使用POST来检索可编辑的版本,那么如何区分最初检索它的POST和保存它的POST?使用POST的我(弱)借口是检索可编辑的版本会导致服务器上的状态更改:锁定资源.但是,只有在我的要求是实现这样的锁定时才有效,但情况并非总是如此.PUT因同样的原因失败,加上我正在运行的Web服务器默认不启用PUT,因此有实际原因不使用它(和DELETE).
请注意,即使在可编辑状态下,我还没有做任何更改; 大概是当我再次将资源提交给Web服务器时,我会发布它.但是为了得到我以后可以POST的东西,服务器必须首先提供特定的表示.
我想另一个办法是在集合级别有不同的资源:
GET /read-only/resource/<id>和GET /editable/resource/<id>或GET /resource/read-only/<id>和GET /resource/editable/<id>...但是这看起来很丑陋给我.
思考?
我是Haskell的新手(更常见的是函数式编程),所以请原谅我这是非常基本的东西.为了获得更多的品味,我尝试在Haskell中实现一些我正在研究的算法.我有一个简单的模块Interval,在线上实现间隔.它包含类型
data Interval t = Interval t t
Run Code Online (Sandbox Code Playgroud)
辅助功能
makeInterval :: (Ord t) => t -> t -> Interval t
makeInterval l r | l <= r = Interval l r
| otherwise = error "bad interval"
Run Code Online (Sandbox Code Playgroud)
和一些关于间隔的效用函数.
在这里,我的兴趣在于多维间隔(d间隔),那些由d间隔组成的对象.我想分别考虑d-区间,它是线上d个不相交区间(多个区间)与d个单独线条(轨道区间)上d区间的并集的联合.考虑到不同的算法处理,我认为有两种不同的类型(即使两者都是这里的间隔列表)会很好,例如
import qualified Interval as I
-- Multilple interval
newtype MInterval t = MInterval [I.Interval t]
-- Track interval
newtype TInterval t = TInterval [I.Interval t]
Run Code Online (Sandbox Code Playgroud)
允许进行不同的健全性检查,例如
makeMInterval :: (Ord t) => [I.Interval t] -> MInterval t
makeMInterval is = …Run Code Online (Sandbox Code Playgroud) 说我有:
NSDictionary *stuff; // {"1" => "hi", "2" => "bye"}
NSArray *array = [stuff allKeys];
Run Code Online (Sandbox Code Playgroud)
allKeys 复制了东西的密钥,因此数组现在负责发布这些信息.
后来,我什么时候想
我不能做:
array = [newStuff allKeys];
Run Code Online (Sandbox Code Playgroud)
因为它只会重新分配指针并孤立原始数组.我必须先删除对象
[array removeAllObjects];
Run Code Online (Sandbox Code Playgroud)
想知道我的理解是否正确?谢谢!
我正在运行的每个单元测试都是将python代码写入文件,然后将其作为模块导入.问题是代码更改但进一步的import语句不会修改模块.
我认为我需要的是一种方法来强制重新加载模块或清除内部字节码缓存.有任何想法吗?
谢谢!
我DataGrid有一组默认的列显示,但我也想让用户选择/取消选择其应用程序上显示的列.在WPF中有相对简单的方法吗?
这DataGrid是必然的DataTable.
注意:RadioButton如果上述功能过于复杂,我可以通过解决方案使用简单的"默认列/所有列" .
对于那些熟练掌握R评估器如何处理函数调用的细节,这里有一点益智.假设我想编写一个带有R语句的函数,与我在命令行中编写的语句相同,并回显它和评估结果.例:
> p.eval(sum(1:3))
sum(1:3) --> 6
Run Code Online (Sandbox Code Playgroud)
这很简单; 这是定义p.eval():
p.eval <- function(v,prefix="--> ") {
cmd <- deparse(substitute(v)); cat(cmd,prefix,v,"\n")
}
Run Code Online (Sandbox Code Playgroud)
但是假设我现在想要在p.eval周围编写一个包装器,以相同的方式调用; 也许作为一个有点疯狂的二元运算符与虚拟的第二个参数:
%PE% <- function(x,...) p.eval(x)
Run Code Online (Sandbox Code Playgroud)
我想像这样调用它:sum(1:3) %PE% 0应该等同于旧的p.eval(sum(1:3)).这是不行的,当然,这是因为deparse(substitute())中p.eval()现在给x.
对于开明的问题:有没有办法按照我的意愿使这项工作?对于这种特殊用法,我%PE%通过复制/粘贴单行定义来定义p.eval,所以这个问题主要是学术性的.也许我会了解R评估员的细节:)
PS:为什么可能会发现上述函数有用?假设我开发了一些分析代码并通过org-babel以非交互方式调用它(如果你是一个组织模式和/或一个Emacs用户,这绝对值得一试) ).默认情况下,org-babel会在解释器中评估事物时啜饮输出.因此,如果我想获得除原始数字之外的任何内容,我必须明确地构建要通过cat或打印的字符串paste,但是当他们飞行分析时谁想要这样做?...上面的hack允许您简单地追加%PE在您想要打印的行之后的%0,这会将命令回显到组织输出.
rest ×3
.net ×1
c# ×1
cpython ×1
haskell ×1
java ×1
msbuild ×1
msbuild-4.0 ×1
mysql ×1
objective-c ×1
python ×1
r ×1
spring ×1
url ×1
web-services ×1
wpf ×1
wpf-controls ×1
wpfdatagrid ×1