Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Restlet中的API模块化

Restlet中的API模块化
EN

Stack Overflow用户
提问于 2013-05-30 15:21:41
回答 1查看 94关注 0票数 0

我开发了一个基于Restlet API的web应用程序。随着时间的推移,我添加了更多的特性,有时我需要在不同的端点上重用相似的REST API组,这提供了稍微不同的执行上下文(比如切换具有相同模式的不同数据库实例)。我喜欢重构我的代码,使API可重用,并在不同的端点重用它们。我最初的想法是为每个可重用的API设计一个应用程序,并将它们附加到路由器上:

代码语言:javascript
运行
AI代码解释
复制
router.attach("/context1",APIApplication.class)
router.attach("/foo/context2",APIApplication.class)

API应该与REST API的配置无关。将上下文信息(例如数据库实例)传递给应用程序API的最佳方式是什么?这种方法可行且正确吗?在Restlet中重用REST API的最佳实践是什么?如果有一些代码示例来说明您的答案,将不胜感激。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-06-03 15:34:52

我已经看到了这个基本的设置,它使用一个组件作为顶层对象,将子应用程序连接到VirtualHost,而不是路由器,就像这个骨架示例一样。

代码语言:javascript
运行
AI代码解释
复制
public class Component extends org.restlet.Component
{
  public Component() throws Exception
  {
    super();
    // Client protocols
    getClients().add(Protocol.HTTP);

    // Database connection
    final DataSource dataSource = InitialContext.doLookup("java:ds");
    final Configuration configuration = new Configuration(dataSource);

    final VirtualHost host = getDefaultHost();

    // Portal modules
    host.attach("/path1", new FirstApplication());
    host.attach("/path2", new SecondApplication(configuration));
    host.attach("/path3", new ThirdApplication());
    host.attachDefault(new DefaultApplication(configuration));
  }
}

我们使用一个自定义配置对象,基本上是一个pojo来传递任何需要的公共配置信息,并使用它来构造应用程序,我们对每个应用程序使用单独的“默认”上下文。

这最初是针对restlet 1.1.x编写的,并已通过2.0.x升级到2.1.x,尽管它可以工作并且相当整洁,但在2.1.x或2.2.x版本中可能会有更好的方法来实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16840002

复制
相关文章
《Restlet Client》优秀的Api测试工具
Restlet Client是一个类似Postman的Api测试工具, 界面比Postman更现代化一些, UI布局也更合理一些, 非常适合程序员们自测接口, 下面是几个示例
zhaoolee
2019/08/08
1.8K0
restlet入门搭建hello world[通俗易懂]
最近研究rest接口,发现restlet应用挺广泛,不过入门资料很少,去官网下载jar包,根据官网说明搭建了一个简单的restlet工程:
全栈程序员站长
2022/09/19
3900
使用SpringFramework+Restlet实现rest服务
REST 全称是 Representational State Transfer(表述性状态转移),它是 Roy Fielding 博士在 2000 年写的一篇关于软件架构风格的论文。许多知名互联网公司开始采用这种轻量级 Web 服务,大家习惯将其称为 RESTful Web Services,或简称 REST 服务。
tunsuy
2022/10/27
8570
js 中的模块化编程思维
把模块写成一个对象,所有的模块成员函数都放到这个对象里面。 JS 代码实例: $(function () { App.renderScenarioNodes(); }); let App = { /** * 新增下一个节点按钮事件 */ bindAddNodeEvent: () => { $('#add-node-btn').unbind().bind('click', () => { let currentNodeNum
一个会写诗的程序员
2018/09/12
3.1K0
关于前端开发中的模块化
AngularJS模块化使用的并不是标准的AMD规范,AngularJS的风格风格大致是这样的:
LIYI
2019/09/02
7460
关于前端开发中的模块化
es6中的模块化
在ES6中每一个模块即是一个文件,在文件中定义的变量,函数,对象在外部是无法获取的。如果你希望外部可以读取模块当中的内容,就必须使用export来对其进行暴露(输出)。先来看个例子,来对一个变量进行模块化。我们先来创建一个test.js文件,来对这一个变量进行输出:
用户1272076
2019/03/26
5570
页面重构中的模块化思维
由 Ghostzhang 发表于 2009-06-21 21:24 更新于 2021-12-10 14:45
GhostZhang
2022/08/21
3440
模块化的核心思想──页面重构中的模块化设计(四)
有不少同学觉得前面的内容过于简单了,对于 样式的作用域的分类 、 栏目级作用域 、 继承 等内容的确十分基础,不过基础还是很重要的。下面就一起进入这个系列真正的主题——“模块化”吧。
GhostZhang
2022/08/21
4530
JavaScript中的各种模块化规范
前端发展到今天,已经有不少模块化的方案,比如AMD、CMD、UMD、CommonJS等,当然了,还有es6带来的模块系统,这些模块化规范的核心价值都是让 JavaScript 的模块化开发变得简单和自然,今天就来看看这些规范都是啥。 为什么要模块化 在模块化这东西没出来之前,前端脚本引用大概是这样的: <script src="module1.js"></script> <script src="module2.js"></script> <script src="libraryA.js"><
前朝楚水
2018/04/02
8710
flask中的蓝图实现模块化的应用
    蓝图的基本设想是当它们注册到应用上时,它们记录将会被执行的操作。 当分派请求和生成从一个端点到另一个的 URL 时,Flask 会关联蓝图中的视图函数。
py3study
2020/01/19
9740
继承──页面重构中的模块化设计(三)
前面我们了解了 样式的作用域的分类 和 栏目级作用域 。在权值中,还有一个很重要的因素,需要做下补充,起因是这样的,有个同学在CSS森林群里问了个问题:根据样式权值两个关键的因素
GhostZhang
2022/08/21
2890
Lua 中的常用API
luaL_newstate lua_State *luaL_newstate (void); 创建一个新的state luaL_openlibs void luaL_openlibs (lua_State *L); 打开所有的标准lua库到指定状态,也就是把所有标准类库加载到指定的虚拟机. luaL_loadfile int luaL_loadfile (lua_State *L, const char *filename); 加载文件的时候把它当一个lua模块 luaL_dofile和luaL
程序手艺人
2019/02/21
1.9K0
Windows API 中的坑
进程会继承其父进程的环境变量,在展开如 %APPDATA% 等目录时,有可能父进程对此环境变量进行过修改,那么可能你获取的就不是你想要的当前 SESSION 的 %APPDATA% 了。
零式的天空
2022/03/24
7630
Windows API 中的坑
进程会继承其父进程的环境变量,在展开如 %APPDATA% 等目录时,有可能父进程对此环境变量进行过修改,那么可能你获取的就不是你想要的当前 SESSION 的 %APPDATA% 了。
mzlogin
2020/04/16
9930
Vue中的封装api
我做vue和react的项目都是用的这一套api(时间戳是我新加的),接口,方法分开,便于管理。
刘亦枫
2020/03/19
1.2K0
Hibernate中的主要API
Configuration类中提供了configure方法,可以用来读取指定的Hibernate属性文件,为获得数据库连接对象做好准则,代码为:
OECOM
2020/07/02
6040
iOS开发中 xib模块化设计
比如我们的xib名字为ZJUserPicView.xib 就必须建一个相同名字的类ZJUserPicView.swift并继承ZJXibView
码客说
2019/10/22
8480
微服务:API网关在API安全中的作用
当从单体应用程序切换到微服务时,来自客户端的行为不能与以前一样,单体架构客户端只有一个入口点到应用程序。
程序你好
2018/09/29
3.2K0
微服务:API网关在API安全中的作用
API网关在API安全性中的作用
从单一应用程序切换到微服务时,客户端的行为不能与客户端具有该应用程序的一个入口点的行为相同。简单来说就是微服务上的某一部分功能与单独实现该应用程序时存在不同。
架构师修炼
2020/07/20
1.4K0
API网关在API安全性中的作用
点击加载更多

相似问题

Restlet API示例

21

Javascript restlet api

12

从调用RESTlet API

25

从RESTlet API检索图像

33

如何使用restlet api返回plist

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档