php网站建设是什么意思图片优化软件
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());}}