我正在学习SpringRest服务,我对SpringRest服务有疑问
是否可以从其他语言(如c或Ruby)调用Spring Rest服务,其中c或Ruby将作为客户端,Spring Rest服务作为服务或资源提供者。
如果可能的话,有人能举例说明简单、详细的方式吗。
提出这个问题的原因是,如果我们使用Jax-ws开发web服务,那么跨技术的互操作性就会发生,比如从C调用基于Java的web服务,反之亦然。使用Spring-Rest中开发的Rest服务或使用Jersey-api框架也会发生同样的事情吗。
是的,这是可能的。当然,关键是序列化/反序列化数据。只要Rest服务接受序列化数据作为输入,并返回序列化数据作为输出。
例如,假设您有一个endpointhttp://www.example.com/public-api/foo,使用可接受的方法GET(它提供数据)。
在Spring,您有一个名为Foo的资源。java,其形式如下
class Foo implements Serializable {
private static long serialVersionUID = -1L;
private String someProperty;
public Foo() {
...
}
public String getSomeProperty() {
return this.someProperty;
}
public void setSomeProperty(String someProperty) {
this.someProperty = someProperty;
}
}
使用以下控制器
@Controller
@RequestMapping(value={"/"})
class FooController {
@RequestMapping(value={"/foo"}, method={RequestMethod.GET})
public HttpEntity<Foo> foo() {
...
Foo foo = new Foo();
...
return new ResponseEntity<ResourceSupport>(foo, HttpStatus.OK);
}
}
当您在浏览器中访问此内容时,它将返回以下文本
{
"_self": "http://www.example.com/public-api/foo",
"someProperty": ...
}
这个输出(JSON)可以非常简单地用Ruby和C(或任何语言)进行解析。
输入方式相同。您只需发布或放置符合您试图输入的任何资源的JSON数据,而不是解析JSON。要发布或放置新的Foo对象,只需发布或放置具有适当属性的JSON数据。
REST调用只是一个http调用。这项服务不关心客户端使用什么语言编码——可以是浏览器、手机,用c、java、c、objective-c编写,这无关紧要。
通常,如果您有对象数据要从客户端传递给服务,您将用JSON或XML对其进行编码。
问题内容: 我有一个编译的Python库和API文档,我想从Ruby使用。 是否可以加载Python库,实例化其中定义的类并从Ruby对该对象调用方法? 问题答案: 本文提供了一些从Python运行Ruby代码的技术,这些技术也应适用于相反的方向(例如XML- RPC或管道),以及从Ruby运行Python代码的特定技术。特别是rubypython或Ruby / Python 看起来像他们可以做您
问题内容: 我正在尝试从C 调用python类中的方法。调用它的C 方法是C ++回调。 在此方法中,当我尝试调用python方法时,它给出了。 我已经将python函数的实例保存在全局变量中,例如 python方法在哪里,将在回调中使用。 在回调中,参数创建为 创建时 在这一行中,它给出了细分错误。之后,实际的python方法称为 问题答案: 如果要从C / C ++回调中调用Python函数,
问题内容: 我基本上需要确保对这项服务的要求。 已经为我提供了一个测试客户端和两个文件,以及,但是我不知道如何使用它们:我了解X509Certificate2类以某种方式涉及。 执行测试客户端的命令行如下: 它可以正常工作,因此我既可以看到服务,也应该正确配置服务本身。 我的C#客户端(针对.NET 2.0)使用普通的Web参考来执行请求: 服务器设置应正确设置。 我摸索了这些方法,但是我无法给出
问题内容: 构建与C或C ++库的Python绑定的最快方法是什么? (如果这很重要,我正在使用Windows。) 问题答案: Boost Python库是用于连接Python和C 的框架。它使您可以快速而无缝地将C 类的函数和对象暴露给Python,反之亦然,而无需使用特殊工具-仅使用C 编译器即可。它被设计为以非介入方式包装C 接口,因此您不必为了包装而完全更改C ++代码,从而使Boost.
我有一个rest服务,实现如下- 我得到了所有的头和响应状态正确,但我没有得到json响应。这里怎么了?
我是一名windows开发人员,对web应用程序和ASP知之甚少。我正在尝试为某人创建一个C#dll(它正在进行Web服务调用),这是从一个经典的ASP应用程序调用的。 这一切都是从一个WinForms测试应用程序开始的,该应用程序成功地加载了WSDL并调用了该web服务。现在的需求是获取测试应用程序功能,将其移动到dll,并从ASP应用程序调用该dll。我天真地将appconfig文件留在那里,