范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

magicapi快速接口开发

  magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口。 快速开始环境搭建
  1,引入magic-api-spring-boot-starter依赖
  org.ssssssss
  magic-api-spring-boot-starter
  1.7.1
  
  2,application.yml 中配置
  magic-api:
  #配置web页面入口
  web: /magic/web
  resource:
  # location: /data/magic-api
  type: database # 配置接口存储方式,这里选择存在数据库中
  table-name: magic_api_file # 数据库中的表名
  3,启动服务,访问magic-api web页面
  http://127.0.0.1:8035/magic-test/magic/web 界面说明
  使用教程请求参数获取
  1,RequestParam
  GET http://localhost:9999/xxx/xxx?name=abc&age=49
  这样的URL参数magic-api 会自动将name和age映射为同名变量
  2,表单参数
  POST http://localhost:9999/xxx/xxx
  name=abc&age=49
  这样的表单参数magic-api 也会自动将name和age映射为同名变量。
  3,Request Header参数获取
  magic-api 会对所有RequestHeader统一封装为一个名为header的变量 如要获取 token 可以通过header.token 来获取。
  4,POST请求的Request Body参数获取
  {
  "name": "magic-api"
  }
  如要获取name属性 则可通过 body.name 来获取
  5,Path参数获取
  主要是针对URL定义为http://localhost:9999/user/{id} 的类似接口
  如要获取path路径上的id可通过path.id 或 id来获取
  6,Cookie,Session参数获取
  可以通过cookie.xxx,session.xxx来获取SQL参数获取
  1,#{} 注入参数,${} 拼接参数
  作用和mybatis用法一致
  id = #{id};
  id=${id};
  2,动态SQL参数
  通过?{condition,expression}来实现动态拼接SQL,如果条件成立则拼接后部分内容SQL中,与mybatis中的if标签基本一致
  return db.select("select * from sys_user ?{id,where id = #{id}}");
  相当于mybatis中的
  3,Mybatis 语法支持
  1.6.0以后的版本支持Mybatis语法单表CRUD操作
  操作入口 db.table("table_name")
  1,insert
  return db.table("sys_user").insert({ user_name : "李富贵", role : "admin"})
  // insert into sys_user(user_name,role) values("李富贵","admin")
  2,update
  return db.table("base_dict").primary("code").update({ code: "insertTerst", name : "测试insert"})
  //update base_dict set name = ? where code = ?
  3,save
  用法和insert相似
  return db.table("sys_user").primary("id", uuid()).save({user_name: "李富贵"});
  // insert into sys_user(id,user_name) values("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","李富贵");
  4,select,page,where
  return db.table("sys_user").select()
  return db.table("sys_user").page()
  return db.table("sys_user")
  .where()
  .like("user_name","%李富贵%")
  .eq("role","admin")
  .select()分页
  yml中配置分页参数
  magic-api:
  page-config:
  size: size # 页大小的请求参数名称
  page: page # 页码的请求参数名称
  default-page: 1 # 未传页码时的默认首页
  default-size: 10 # 未传页大小时的默认页大小
  自动分页
  使用yml中配置的分页参数
  return db.page("""select * from base_dict_detail""")
  手动分页
  跳过前3条记录,然后取5条
  return db.page("""select * from base_dict_detail""",5,3)
  自定义分页参数获取
  实现 PageProvider接口,复写getPage方法 {
  public Page getPage(RuntimeContext runtimeContext) {
  long page = 2;
  long pageSize = 3;
  return new Page(pageSize, (page - 1) * pageSize);
  }
  此模式会覆盖yml的配置内容统一请求响应
  目前内置了三种状态码,分别为 执行成功(1),参数验证失败(0),以及系统异常(-1)
  自定义状态码
  magic-api:
  response-code-config:
  success: 200 #执行成功的code值
  invalid: 400 #参数验证未通过的code值
  exception: 500 #执行出现异常的code值
  默认返回格式
  {
  "code": 1, // 状态码
  "message": "success", // 状态说明
  "data": ..., // 返回的数据内容
  "timestamp": 1629610503506, // 服务器时间
  "executeTime": 1 // 执行时间
  }
  自定义返回格式
  magic-api:
  response: |- #配置JSON格式,格式为magic-script中的表达式
  {
  code: code,
  message: message,
  data,
  timestamp,
  requestTime,
  executeTime,
  }
  自定义结构配置
  实现ResultProvider接口,重写buildResult方法
  Swagger文档生成
  引入swagger依赖
  在yml文件中配置
  magic-api:
  swagger-config:
  version: 1.0.0
  description: magic测试文档
  title: magic测试
  name: 配置化实现
  location: /v2/api-docs/magic-api/swagger2.json原理分析
  Magic-api通过springboot自动配置的方式配置了resource,dataSource,interceptor等内容。接口注册
  在服务启动时,生成MagicConfiguration注入容器时,通过mappingHandlerMapping.registerAllMapping();来注册所有映射(即在界面上配置的接口请求地址和接口的实际处理类、方法的映射)。映射关系注册到handleMapping中,并在内存中通过ConcurrentHashMap来缓存映射关系
  接口调用
  接口调用时,在DispatcherServlet中通过url去寻找handler,找到magic-api的统一处理RequestHandler以及处理方法invoke。
  在invoke中根据请求方法和路径获取接口信息封装在ApiInfo中,然后进行参数的验证封装。实际脚本的执行,以及对返回结果的包装

从里程焦虑到补能焦虑充电补能体系如何喂饱新能源车龚梦泽新能源汽车全年销量有望突破340万辆的喜报言犹在耳,关于电动汽车里程和补能焦虑的问题,已从熙熙攘攘的国庆高速路上蔓延到了寒潮侵袭的北方地区。低温之下,三元电池和磷酸铁锂电池内一加10pro升级换代手机,8256G旗舰手机,更新换代价值4999元随着互联网时代的发展,智能产品已经离不开人们的生活,智能手机几乎是人人必备的电子产品,相对于智能手机来说,各种品牌层出不穷。随着5G时代的发展,电子产品也有了更大的提升,一加品牌的OPPOWatch2冰川湖蓝手表使用体验,除了价格,缺点只有一个最近买的新款OPPOWatch2冰川湖蓝已经使用有一段时间了,给大家分享一下使用体验。首先外观上Watch2与其他几个版本比较直观的区别是全新冰川湖蓝表带,浅蓝色的表带,视觉上有种终于现货了!16GB1TB骁龙8Gen1,仅5999元不知道你平时多大的存储才够用?有些用户需求较高,经常存储大文件,因此需要更大容量存储,目前市面上比较常见的是128GB和256GB,笔者认为即便是平常使用,128GB已经不够用了,新鲜早科技丨中兴通讯结束五年合规观察期微软承认被黑客入侵英伟达推出自动驾驶新平台21世纪经济报道数字经济课题组综合报道早上好,新的一天又开始了。在过去的24小时内,科技行业发生了哪些有意思的事情?来跟21tech一起看看吧。巨头风向标1中兴通讯结束五年合规观察小米电动牙刷的实际体验如何?小米一共有三款电动牙刷,相比于飞利浦和欧乐B来说,产品较少,价格也超低,那么这三款到底有什么区别?有没有哪款性价比更高,更适合买呢?如果你只是想知道哪一款值得买,我这里不废话,直接小米12系列再创高光时刻,登上巴黎铁塔,受海外米粉热烈追捧自从小米12系在去年12月28日发布后,海外媒体一直在追问,什么时候能够发布国际版本,直至3月15日小米12系列的海外发布会陆续在英国德国法国西班牙意大利荷兰等国,以及东南亚的泰国高调从美国退市回国,被美国制裁拉黑,一心为中国打造网络长城中兴提前解除紧箍咒,究竟为何?好消息,中兴通讯在被美国累计罚款22。9亿美金,制裁了5年以后,提前宣告观察期结束。至于原因,大概率是因为部分美国企业的客户,主要来自中国,一旦失去中陕西省创新驱动共同体精准滴灌硕果盈枝秦创原不仅为我们匹配到了大量上下游资源,还在人才和技术储备上给公司提供了极大的帮助。3月15日,在西咸新区沣东新城协同创新港,西安某科技公司总经理陆晓峰感慨地说。疫情防控期间,尽管抖音直播发布专项治理公告,打击直播诈骗黑色产业链来源中国经济网3月21日,抖音直播发布抖音关于打击直播诈骗黑色产业链的公告。公告称,为进一步保障用户及平台安全,抖音下阶段将重点推进MCN治理帐号治理等专项行动。同时,将于即日起开中国新基建,七大领域将成为未来发展重点2018年底的中央经济工作会议提出加快5G商用步伐,加强人工智能工业互联网物联网等新型基础设施建设,新基建的概念由此产生,并被列入2019年政府工作报告2021是全面建成小康社会和
家里的老人耳朵有听力问题,请问助听器怎么配?对于听力下降的老年人,或者经过药物或手术治疗无效,病情稳定,有残余听力,并且期望改善言语交流的耳聋病人,均可配备助听器。应先了解病人听力的情况,根据病人对助听器的需求,还有结合听力马斯克老妈嘲讽拜登你电动汽车演讲稿20年前写的吧马斯克与其母亲梅耶凤凰网科技讯北京时间11月23日消息,美国总统拜登近日在一次关于电动汽车未来的演讲中称赞了通用汽车,却没有提及特斯拉。遭到马斯克老妈嘲讽拜登的演讲稿是在20年前写即将发布的三大国产旗舰手机对比第一款小米12消息爆料小米12这次会首批采用骁龙898处理器,镜头方面很可能会采用和K30S镜头类似的大眼萌设计,并且采用2亿像素的定制传感器,11。3超大底镜头,和最新的光学防抖OPPOReno7真机亮相,颜值没得说,性能给力,11月25日发布OPPO手机这几年在国内外市场运营的都非常不错,从产品的设计到硬件软件优化,几乎做到了一流的用户体验,而今年一加手机业务更是并入了OPPO,让其产品线更加丰盈,消费者针对OPPO手特斯拉事件再度反转,自动驾驶终将驶向何方?最近关于特斯拉的瓜着实让人吃得有点撑,前脚女司机维权事件的热度还没有退去,后脚失控追尾的特斯拉又不断新增,甚至出现了撞击警车的事件。面对这一切,特斯拉全球副总裁陶琳先是决不妥协,而撕下这些手机的遮羞布,让我们看清缺点,才能用着舒心我觉得买手机不怕买到配置有阉割有缺点的机器,毕竟有些缺点可能其他人并不在意,也压根用不到,但手机市场仍然有厂商对外宣传全能配置品质旗舰旗舰杀手等等,手机厂商不会告诉你这款手机的缺点华为荣耀手机能用几年?这个我有发言权!2016年秋天我买了一款上市不久的荣耀8,当时主要看中它像素高,拍照效果好,后来证实拍照效果的确不赖,购买价2200元。用了大概两年的时候,电视剧都拍不出来的惊奇情荣耀50基本确认,高通提供助力,新荣耀能否再创佳绩?荣耀50虽然还没有发布,但基本信息已经确认得差不多了。时隔多年后荣耀又一次联手高通,那荣耀能否再次扬帆起航,帮助荣耀走出困境!高通骁龙778G还不具备挑大梁的实力!目前已经确认荣耀618持币3000元,购买什么手机好?目前是五月,距离618还有整整一个月。就目前而言3000元的预算是可以买旗舰机型的,骁龙888870或天玑1200都不在话下。如果未来这一个月不会再有新机出现的话。那么性价比极高的都2021年了,荣耀9x还值得买吗?先看看价格,看到这个价格,只能恭喜一下之前购买荣耀9X的用户了,因为荣耀9X升值了,现在664GB还要1500左右,6128GB都在1800左右了,说真的看到这个价格后,我很好奇这跑步用什么手表比较好?悟空问答跑步用什么手表较好?跑步与走步(跑步走步数统计经验)根据我的经验35年!(AppleWatch)运动锻炼后,华为,苹果,非常有效!我很高兴朋友们也高兴。谢谢!我跑步从来不带