** #1. APP接口介绍 **

什么是接口?
1、什么是接口?
  接口一般来讲分为两种:

(1)程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。

(2)系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

2、接口的分类?

接口分类一般分为两种:

(1)webService接口:走soap协议通过http传输,请求报文和返回报文都是xml格式的。测试时需要通过工具才能进行调用、测试。少数公司还在使用这种接口,如医院等行业。

(2)http api接口:走http协议,通过路径来区分调用的方法,请求和报文都是key-value形式的,返回报文一般都是json串,有get和post等方法。目前来讲,是最常用的。
3、接口返回数据

接口返回的数据一般都是json串,json是一种通用的数据类型,格式为key-value。

4、前端、后端区别?
前端:客户端。通俗来讲,一般情况下,web端或app端能看见的地方以及一些简单的校验,都属于前端。(ps:网站上显示的后台管理不属于后端哦)

后端:服务器端。web端或app端的系统逻辑、如购物时扣除余额,微博发到哪里等都是由后端实现的。

JSON方式封装通信

ios 原生接口 原生接口是什么意思_php


ios 原生接口 原生接口是什么意思_json_02


PHP生成JSON数据

方法:json_encode($value)

通信数据标准格式

  • code 状态码(200,400等);
  • message 提示信息(参数错误;数据返回成功等)
  • data 返回数据

** 2.APP是如何通信的 **

ios 原生接口 原生接口是什么意思_php_03


APP与浏览器通信的异同

相同处:都是向服务器端发起HTTP请求,经过服务器端的逻辑处理后返回相对应的结果

不同之处:

ios 原生接口 原生接口是什么意思_php_04


XML定义

扩展标记语言((Extensible Markup Language ,XML ) ,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

XML格式统一,跨平台和语言,非常适合传输和通信,早已成为业界公认的标准。

ios 原生接口 原生接口是什么意思_json_05


简单的XML格式

ios 原生接口 原生接口是什么意思_数据_06

** JSON封装接口 **

封装通信接口方法

  • JSON方式封装接口数据方法
  • xml方式封装接口数据方法
  • 综合通信方式封装

PHP生成JSON数据
方法:json_encode($value)

通信数据格式

ios 原生接口 原生接口是什么意思_php_07


ios 原生接口 原生接口是什么意思_xml_08


json方式如何封装通信数据方法

<?php
class Response
{
  // 按照json方式去封装数据的方法
  // $code   状态码
  // $message提示消息
  // $data 返回数据

  public static function json($code, $message = '', $data = array())
  {
    if (!is_numeric($code)) {
      return "";
    }
    $result = array(
      'code' => $code,
      'message' => $message,
      'data' => $data
    );
    echo json_encode($result);
    exit;
  }
  public static function xml()
  {
    header("Content-type:text/xml");
    $xml = "<?xml version='1.0' encoding='UTF-8' ?>\n";
    $xml .= "<root>\n";
    $xml .= "<code>200</code>\n";
    $xml .= "<message>数据返回成功</message>\n";
    $xml .= "<data>\n";
    $xml .= "<id>1</id>\n";
    $xml .= "<name>caicai</name>\n";
    $xml .= "<desc>this is a test</desc>\n";
    $xml .= "</data>\n";
    $xml .= "</root>";
    echo $xml;
    exit;
  }
}
Response::xml();

ios 原生接口 原生接口是什么意思_数据_09