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

Java程序API数据接口

API:应用程序接口(API:Application Program Interface)

一、使用数据接口的作用

1、封装逻辑

数据接口从数据库查询出数据,并组织成json格式,这个逻辑如果在每个终端都写一遍,那样将编写大量重复代码

2、便于分布部署

可以部署多份API便于多个终端使用

3、提高安全性

可以避免从APP端直接访问数据库

API 同时也是一种中间件,为各种不同平台提供数据共享。根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将 API 分为四种类型: 远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信; 标准查询语言(SQL):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享; 文件传输:文件传输通过发送格式化文件实现应用程序间数据共享; 信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享.

二、项目搭建

1. 技术选型:使用springmvc+mybatis jdk1.7 tomcat7

(注:没有届面,只有数据接口,通过springmvc中的controller对外提供数据服务,利用@ResponseBody注解将数据转成json数组)

2. 项目搭建

-1 pom.xml

-2 web.xml

-3 pring-servlet.xml

-4 日志配置文件

-5 数据库连接属性文件

-6 mybatis配置文件

3. 代码编写(按个人习惯正序、倒序书写)(使用Mybatis)

-1 DAO接口类

-2 映射文件

-3 实体类代码

-4 Service接口类

-5 Service实现类

-6 控制器类

三、简单是的演示

前往演示接口

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;public class Example {private static String readAll(Reader rd) throws IOException {StringBuilder sb = new StringBuilder();int cp;while ((cp = rd.read()) != -1) {sb.append((char) cp);}return  sb.toString();}public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {URL realUrl = new URL(url);URLConnection conn = realUrl.openConnection();conn.setDoOutput(true);conn.setDoInput(true);PrintWriter out = new PrintWriter(conn.getOutputStream());out.print(body);out.flush();InputStream instream = conn.getInputStream();try {BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));String jsonText = readAll(rd);JSONObject json = new JSONObject(jsonText);return json;} finally {instream.close();}}public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {URL realUrl = new URL(url);URLConnection conn = realUrl.openConnection();InputStream instream = conn.getInputStream();try {BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));String jsonText = readAll(rd);JSONObject json = new JSONObject(jsonText);return json;} finally {instream.close();}}public static void main(String[] args) throws IOException, JSONException {// 请求示例 url 默认请求参数已经URL编码处理String url = "https://api-gw.onebound.cn/taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1";JSONObject json = getRequestFromUrl(url);System.out.println(json.toString());}}

http://www.lryc.cn/news/10461.html

相关文章:

  • 剑指offer 7 数组中和为0的三个数
  • DockerFile
  • Vue-Router 介绍及路由原理分析
  • git代码提交后jenkins构建和自动部署
  • 2023面试题目总结
  • Vue常用指令及声明周期
  • MariaDB 成功敲钟上市 | 它与 Navciat 缘起 10 年前
  • LESS模型与随机森林
  • 如何利用Power Virtual Agents机器人实现成绩查询服务
  • flavor 配置
  • 《第一行代码》 第五章:详解广播机制
  • Leetcode(每日一题)——1139. 最大的以 1 为边界的正方形
  • YOLOv5:GitHub两万八Star项目
  • 袋鼠云产品功能更新报告04期丨2023年首次,产品升级“狂飙”
  • 如何在Power Virtual Agents中使用Power Automate
  • BXC6332A第二代智能头盔方案助力电动车市场,为安全保驾护航
  • 浮点数值计算精度丢失问题剖析及解决方法
  • 字符串匹配 - 模式预处理:朴素算法(Naive)(暴力破解)
  • CVE-2021-42278 CVE-2021-42287域内提权漏洞
  • 关于IcmpSendEcho2的使用和回调问题
  • XQuery 术语
  • 会议论文分享-Security22-状态感知符号执行
  • 吴恩达深度学习笔记(八)——卷积神经网络(上)
  • 14 基数排序(桶排序)
  • 汉明距离Java解法
  • Netty服务端请求接受过程源码剖析
  • 金三银四春招特供|高质量面试攻略
  • 搭建Hexo博客-第4章-绑定自定义域名
  • lightdb-sql拦截
  • 二进制中1的个数-剑指Offer-java位运算