本指南将引导您使用一个简单的rest.js客户端,该客户端使用一个基于Spring MVC的RESTful Web服务 。
你会建立什么
您将构建一个rest.js客户端,该客户端使用基于Spring的RESTful Web服务。具体来说,客户端将使用在使用CORS构建RESTful Web服务中创建的服务 。
可以通过打开index.html
文件在您的浏览器中,并在以下位置使用接受请求的服务:
http://rest-service.guides.spring.io/greeting
该服务将以问候的JSON表示形式进行响应:
{"id":1,"content":"Hello, World!"}
客户端会将ID和内容呈现到DOM中。
您可以使用url中的可选查询字符串来自定义问候语:
http://localhost:8080/?User
该代码将向REST端点发送一个参数,并将自定义问候语呈现到DOM中。
你需要什么
-
约15分钟
-
最喜欢的文字编辑器
-
现代的网络浏览器
-
互联网连接
-
预安装Node.js和Git
-
Bower作为全局node.js JavaScript软件包安装
创建凉亭配置文件
首先,创建一个凉亭控制文件, .bowerrc
。该文件告诉bower将JavaScript依赖项放在何处。的.bowerrc
文件应位于项目的根目录({project_id} / initial),格式为JSON:
.bowerrc
{
"directory": "public/lib"
}
从项目根目录的命令提示符运行bower init
。这将创建一个bower.json
描述项目所需的每个JavaScript包的文件。Bower会询问一些信息,例如项目名称,许可证等。如有疑问,只需按Enter
接受默认值。
接下来,使用Bower安装rest.js和AMD模块加载器,例如curl.js。在命令提示符下,键入:
bower install --save rest#~1
bower install --save curl#~0.8
Bower会将rest.js和curl.js安装到我们在列出的目录中.bowerrc
。由于我们指定了--save
选项,bower将软件包信息存储在bower.json
文件。
Bower应该发现rest.js取决于when.js并安装兼容版本。 |
完成后, bower.json
文件应具有“依赖项”对象属性,该属性将“ curl”和“ rest”作为属性名称列出,并将它们的semver信息作为值列出:
bower.json
{
"name": "consuming-rest-rest.js",
"version": "0.0.1",
"authors": [
"John Hann <[email protected]>"
],
"license": "http://www.apache.org/licenses/LICENSE-2.0",
"ignore": [
"**/.*",
"node_modules",
"public/lib",
"test",
"tests"
],
"dependencies": {
"curl": "~0.8",
"rest": "~1"
}
}
创建一个渲染模块
首先,创建一个渲染函数以将数据注入HTML文档。
public/hello/render.js
define(function (require) {
var ready = require('curl/domReady');
return render;
function render (entity) {
ready(function () {
var idElement, nameElement;
idElement = document.querySelector('[data-name="id"]');
nameElement = document.querySelector('[data-name="content"]');
idElement.textContent += entity.id;
nameElement.textContent += entity.content;
});
}
});
该AMD模块使用简单的DOM查询和操作将文本注入文档中。为了确保在准备就绪之前不使用DOM,render模块会导入并使用curl.js的domReady
功能模块。
在实际的应用程序中,您将需要使用数据绑定或模板化 ,而不是如此处所示的DOM操作。 |
创建一个应用程序组合模块
接下来,创建一个将组成应用程序的模块。
public/hello/main.js
define(function (require) {
var rest = require('rest');
var mime = require('rest/interceptor/mime');
var entity = require('rest/interceptor/entity');
var render = require('./render');
var endpointUrl, name, client;
endpointUrl = 'http://rest-service.guides.spring.io/greeting';
name = document.location.search.slice(1);
client = rest
.chain(mime, { mime: 'application/json' })
.chain(entity);
client({ path: endpointUrl, params: { name: name } })
.then(render);
});
主模块从文档的位置对象读取查询字符串,配置rest.js mime客户端,然后调用REST端点。
rest.js返回Promises / A + promise ,它将调用render
端点返回数据时的功能模块。的render
函数需要实体,但是rest.js客户端通常返回响应对象。“休息/拦截器/实体”拦截器将实体从响应中删除,并将其转发到render
功能。
创建启动脚本
接下来,创建启动脚本, run.js
:
public/run.js
var curl;
(function () {
curl.config({
main: 'hello',
packages: {
// Your application's packages
hello: { location: 'hello' },
// Third-party packages
curl: { location: 'lib/curl/src/curl' },
rest: { location: 'lib/rest', main: 'rest' },
when: { location: 'lib/when', main: 'when' }
}
});
}());
此脚本配置AMD加载程序: curl.config()
。的main
配置属性告诉curl.js在哪里可以找到应用程序的主模块,该模块将自动获取并评估。的packages
config对象告诉curl.js在我们的应用程序的程序包或第三方程序包中找到模块的位置。
创建应用程序页面
最后,创建一个index.html
文件并添加以下HTML:
public/index.html
<!doctype html>
<html>
<head>
<title>Hello rest.js</title>
<script data-curl-run="run.js" src="lib/curl/src/curl.js"></script>
</head>
<body>
<div>
<p data-name="id">The ID is </p>
<p data-name="content">The content is </p>
</div>
</body>
</html>
的script
元素加载curl.js,然后加载名为“ run.js”的应用程序启动脚本 。引导脚本会初始化和配置AMD模块环境,然后启动客户端应用程序代码。
运行客户端
要运行客户端,您需要将其从Web服务器提供给浏览器。Spring Boot CLI(命令行界面)包括嵌入式Tomcat服务器,它提供了一种简单的方法来提供Web内容。有关安装和使用CLI的更多信息,请参见使用Spring Boot构建应用程序 。
为了从Spring Boot的嵌入式Tomcat服务器提供静态内容,您还需要创建少量的Web应用程序代码,以便Spring Boot知道如何启动Tomcat。下列app.groovy
脚本足以让Spring Boot知道您要运行Tomcat:
app.groovy
@Controller class JsApp { }
您现在可以使用Spring Boot CLI运行该应用程序:
spring run app.groovy
应用启动后,在浏览器中打开http:// localhost:8080 ,您会在其中看到:

每次刷新页面时,ID值都会增加。
摘要
恭喜你!您刚刚开发了使用基于Spring的RESTful Web服务的rest.js客户端。
也可以看看
以下指南也可能会有所帮助:
是否要编写新指南或为现有指南做出贡献?查看我们的贡献准则 。
所有指南均以代码的ASLv2许可证和写作的Attribution,NoDerivatives创作共用许可证发布 。 |