目的:用Talend实现用Restful形式发布webservice

实现:该示例实现了三个功能:通过查询获取数据;通过调用存储过程获取数据;新增数据。

总体图:

各个组件的主要配置如下:

tRESTRequest_1是Job的主入口,我们这里实现了三个方法,使用不同形式传输。

另外注意的是,因为我们是打算部署到karaf container中,所以REST的Endpoint相同的不能部署在一起,会有冲突,所以我们一般建议在port后面追加模块或系统的标示一起做endpoint,这样就不用耗费很多port来部署了!

下面分三个方法来列出Sample,

getUser:使用GET的传输方法,只传输一个id,URI Pattern:"/{id}/",调用示例就是http://localhost:8088/user/1/

获取参数并映射

使用tMSSqlRow组件来实现传参查询

通过tParseRecordSet组件将结果集转换为Set集合

如果有记录,将记录打包成要输出的XML

然后通过组件返回结果!

另外,如果查询没有结果的话,加入判断,并包装返回的xml返回!

注意:在这个Job中,因为我有两个判断,虽然是从不同节点if的,但可能是由于组流程在一个main job中,所以如果只用(Integer)globalMap.get("tParseRecordSet_2_NB_LINE") == 0一个条件判断的话,在运行是,另外一个if也会执行,所以在此加上了URI的一些判断!

这样getUser基本完成!

其他两个操作基本类似,在此就不累述!不过在此对调用存储过程的稍加截图说明一下!

使用tMSSqlSp组件,Parameters,一个是输入参数,一个是输出记录集RECORD SET

在tParseRecordSet时选择输出记录集RECORD SET的users,并添加需要输出的栏位!

注意事项:

以前没留意,近期发现一个问题,就是tRESTRequest的REST Endpoint好像不能使用变量,例如不能使用context.endpointurl,而只能直接输入字符串"http://localhost:8088/user"之类的,具体为什么会这样,没具体查找原因!

但是如果用了类似变量context.endpointurl的话,在designer里面测试是没问题的,但是部署到container中后就有问题,虽然状态显示是Active,但是访问不了,可能会出现如下提示:

转载于:https://www.cnblogs.com/angusyang/p/6667600.html

Talend Restful相关推荐

  1. 推荐一个Talend ESB的学习资源,适合入门初学了解和学习Talend ESB开发Restful WebService的方法

    采用渐进式的讲解方式,由浅入深,对刚开始接触Talend ESB,希望深入学习的朋友很有帮助,一共十节视频,5-10分钟一节,简单扼要,强烈推荐. 视频内容介绍链接地址:https://www.tou ...

  2. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  3. RESTful风格及其SpringMVC实现

    目录 1.RESTful概念 2.RESTful功能 3.对比:传统方式操作资源 4.SpringMVC实现传统方式操作资源 5.使用RestFul操作资源 6.SpringMVC实现RESTful操 ...

  4. RESTful API 最佳实践

    RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计. 它的大原则容易把握,但是细节不容易做对.本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API. ...

  5. Spring Boot 集成Swagger2生成RESTful API文档

    Swagger2可以在写代码的同时生成对应的RESTful API文档,方便开发人员参考,另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 使用Spring Boot可 ...

  6. java鉴权_一个开箱即用的高效认证鉴权框架,专注于restful api的认证鉴权动态保护...

    作者:tomsun28 来源:SegmentFault 思否 写在开头 看了看这个专栏的最近一篇文章已经是两年前了,时间过得好快.应该是出学校后时间就很快了.两年前因为用shiro后,自己就按着想法开 ...

  7. as 不显示gradle视图_Python构建RESTful网络服务[Django篇:基于类视图的API]

    系列文章介绍 本系列文章将详细介绍将Django官方引导教程中的投票项目改写为RESTful网络服务.Django官方教程地址https://docs.djangoproject.com/zh-han ...

  8. vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

    一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...

  9. [转] 理解RESTful架构

    FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件 ...

最新文章

  1. bootstrap缩小后div互相叠加_纯 JS 实现放大缩小拖拽踩坑之旅
  2. Matlab实用程序--图形应用-条形图形
  3. R语言:文本(字符串)处理与正则表达式
  4. java string 异或_Java源码——String
  5. 互联网手机躁动:“周大炮”追逐“雷布斯”
  6. 图论 —— 生成树 —— 最小瓶颈生成树
  7. 查看Ubuntu中的ip地址
  8. iOS开发--UIKit控件之UISearchBar(搜索栏)
  9. 程序员面试金典——9.8硬币表示
  10. 两个无线路由器dhcp服务器,两个无线路由器怎么桥接
  11. 学习编程比学开车要简单
  12. 血浆游离RNA提取试剂盒(附文献参考)
  13. 银行家算法的实验报告
  14. word中那些奇怪的数学符号字体是怎么打出来的
  15. [简化] [排除] [推理]
  16. php后台跨域token,JSON Web Token(JWT)目前最流行的跨域身份验证解决方案(PHP)类...
  17. 对于APIC的一些资料
  18. android模拟打印机服务,Android下的POS打印机调用的简单实现
  19. ODrive0.5.1程序分析#3 FOC算法程序
  20. autojs健康天天报(企业微信)——JZU

热门文章

  1. 【JVM调优】JVM指令集大全
  2. window.event.returnValue=false
  3. 分组[测试点分支+二分图判定]
  4. Excel 下来公式 内容却一样
  5. solr创建core
  6. 修改主机名 修改静态IP
  7. linux查看与修改交换内存配置(解决zabbix-agent启动报错)
  8. opencv2中访问像素的简单方法-自定义一个宏CV_MAT_ELEM2
  9. 【每日一包0029】merge-descriptors
  10. 【BIEE】BIEE报表根据维度表展示事实表不存在的维度