当前位置: 首页 > news >正文

泛微OA编写后端Rest接口

泛微OA编写后端Rest接口

前言

具体实现

运行结果

注意要点

总结


前言

在泛微E9中,可以通过注解的方式来编写对外的接口,之前的版本都是通过编写servlet类,然后在web.xml文件中将这个类和访问路径进行编辑之后才好在浏览器中通过输入对应的url来进行访问,这样的话,每一次编写对应的对外接口都比较麻烦

在泛微升级到E9之后,对应的jdk也从1.6升级到了1.8;已经可以支持通过使用注解来进行开发了,在泛微中使用注解进行开发的话就和之前在javaWeb中编写Rest接口很类似了

虽然但是泛微规定了一系列的编写规则就类似java的三层架构一样,但是如果对代码的美观性以及规范性和可重用性不是特别在意的话完全可以通过一个类来实现整个接口的开发

具体实现

在编写E9的Rest接口的时候,咱们必须要注意的是类的存放路径的问题,只有将class文件放在服务器正确的包下才能访问到对应的接口

在泛微的只是文档中有对此的介绍【文档中详细说明了他的三层规范要求,但是我也说了对此不介意的可以直接一个类解决所有!!!

package com.api.workflow.web.workflowPath;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import com.alibaba.fastjson.JSON;


import weaver.conn.RecordSet;
import weaver.general.Util;

/**
 * @author cxy
 *
 */
@Path("/workflow/test")
public class EcodeTestActionWorkflow {
	@GET
    @Path("/getInfo2")
  	@Produces(MediaType.TEXT_PLAIN)
    public String test(@Context HttpServletRequest request,@Context HttpServletResponse response) {
	  Map<String, String> map = new HashMap<>();
	  RecordSet rs = new RecordSet();
	  String sql = "select * from Resource where loginid = 'no123";
	  rs.execute(sql);
	  rs.first();
	  String username = Util.null2String(rs.getString("lastname"));
        map.put("test", "test3");
        map.put("username", username);
        
        String jsonStr = JSON.toJSONString(map); 
        System.out.println(jsonStr);
	  
	  return jsonStr;
    }

}

当然了这只是我的一个小小的建议,如果你对代码规范有自己的要求的话,完全可以按照她写的三层架构来实现接口的【没有任何问题,看你自己!!!

运行结果

在把java文件编译好的class文件放在对应的【workflowPath】包下之后,重启服务器,即可通过访问对应的URL访问接口了

注意要点

  1. 接口的class文件存放位置一定要在workflowPath包下,只有这个包下的接口可以在类上通过@Path进行规定【我是说如果你打算用一个类来实现接口功能的话】
  2. 如果你发现你的注解对应的包无法导入,那么你需要查看你的lib里面是否有对应的jersey的包

总结

最后的最后,再一次强调,选择使用三层架构以及选择不使用都是个人自由哦~

如果有任何问题的话可以在评论区进行讨论哦~

相关文章:

  • 消息队列-持续更新中
  • leetcode刷题记录(一百零八)——322. 零钱兑换
  • 【Python项目】基于Django的医疗领域用户问答意图识别系统
  • HTML应用指南:利用GET请求获取全国泸溪河门店位置信息
  • 如何利用 Vue 的生命周期钩子进行初始化和清理操作?
  • 第30篇 基于ARM A9处理器用C语言实现中断<六>
  • 文本分类与情感分析算法
  • nodejs npm install、npm run dev运行的坎坷之路
  • 华为昇腾服务器固件Firmware、驱动Drive、CANN各自的作用与联系?
  • 下载或者引入库
  • 14.7 LangChain Experimental 模块解析:解锁 Auto-GPT 开发新范式
  • 【Python】03-Python语法入门
  • 如何通过Origins公链推动边缘计算的物联网应用
  • 【Spring中事务的传播行为有哪些?】
  • go 并发 gorouting chan channel select Mutex sync.One
  • 大语言模型:从开发到运行的深度解构
  • WPF 中显示图形的方式深度解析
  • 2025年度福建省职业院校技能大赛高职组“信息安全管理与评估”赛项样题
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py
  • 【AI绘画】大卫• 霍克尼风格——自然的魔法(一丹一世界)
  • 百年前淮北乡村的风俗画卷——读郑重 《九十自述》
  • 华住集团:第一季度盈利8.94亿元,同比增长超三成
  • 中沙深化多领域合作,达成60余项共识
  • 当文徵明“相遇”莫奈:苏博将展“从拙政园到莫奈花园”
  • 河北6人在河道倒污泥被控污染环境案撤诉后,已拿到国赔决定书
  • 长三角议事厅·周报|新能源汽车产业需寻求“第二增长曲线”