> 백엔드 개발 > PHP 튜토리얼 > PHP로 APP 인터페이스를 개발하는 전체 과정 (1)

PHP로 APP 인터페이스를 개발하는 전체 과정 (1)

angryTom
풀어 주다: 2023-04-07 15:04:01
앞으로
4046명이 탐색했습니다.

1. 학습 포인트:

서버 측 –> 호출 인터페이스 – > APP 인터페이스 소개: (PHP 개발 APP 인터페이스)

PHP 인터페이스: 추상 클래스, 인터페이스 정의==>interface.php

===>1. 매우 표준화된

APP 인터페이스(통신 인터페이스): 인터페이스를 통해 데이터를 얻고 데이터를 APP

에 채웁니다. 앱 개발자는 다음 사항에 주의해야 합니다. 앱 주소(인터페이스 주소) 요청 + 데이터 반환

APP(통신) 인터페이스 정의:

1. 인터페이스 주소: http://app.com/api.php?format=xml

2 . 인터페이스 파일: app.php는 일부 비즈니스 로직을 처리합니다.

(권장 학습:

PHP 비디오 튜토리얼

)

3. APP 통신 방법:

4 . 클라이언트 APP 통신 형식의 차이점

1.xml: 확장 마크업 언어 (1. 데이터를 표시하고 데이터 유형을 정의하는 데 사용됩니다. 사용자가 자신의 마크업 언어, xml 형식을 정의할 수 있는 소스 언어입니다. 데이터 전송 및 통신에 매우 적합한 플랫폼과 언어는 오랫동안 업계에서 인정받는 표준이 되었습니다)

<?xml version="1.0" encoding="UTF-8"?>
    <item>
        <title>测试</title>
        <test id="1">
        <description>测试oen</description>
        <address>深圳</address>
    </item>
로그인 후 복사

2.json: 가독성이 좋고 빠르게 쓰기 쉬운 멋진 수준의 데이터 교환 형식으로 데이터 교환을 위해 서로 다른 플랫폼의 문서 간에 JSON은 호환성이 뛰어나고 완전히 독립적인 언어 텍스트 형식을 사용합니다. 이 속성은 JSON을 이상적인 데이터 교환 언어로 만듭니다.

XML의 가독성이 향상되고 JSON(json_encode(배열))의 데이터 생성 및 전송 속도가 향상됩니다.

5 APP 인터페이스의 기능:

데이터 가져오기: 데이터베이스 또는 캐시에서 데이터 가져오기 , 그리고 인터페이스 데이터를 클라이언트에 반환합니다.

데이터 제출: 인터페이스를 통해 서버에 데이터를 제출한 다음 처리 또는 기타 처리를 위해 서버에 저장합니다.

JSON 방식으로 통신 인터페이스를 캡슐화합니다.

PHP는 json 데이터를 생성합니다: json_encode( $arr)

참고: 이 함수는 UTF-8로 인코딩된 데이터만 허용합니다. 다른 형식의 데이터가 전달되면 함수는 null을 반환합니다.

통신 데이터 주석 형식:

code 状态码(200 400等) 
message 提示信息(邮箱格式不正确;数据返回成功等) 
data 返回相应的数据 
—————————- 
-JSON 
code : 200 
message :”数据返回成功” 
-data 
id :1 
name : “测试”
로그인 후 복사
인스턴스:

  某个server中:
    public  function json($code,$message = &#39;&#39;,$data = array())
    {
            if (!is_numeric($code)){
                return &#39;错误&#39;;
            }
             $result = array(
                &#39;code&#39; => $code,
                &#39;message&#39; => $message,
                &#39;data&#39; => $data
        );
        echo json_encode($result);
        exit;
       }
로그인 후 복사

특정 컨트롤러:

    public function jsonsAction()
           {
               $arr = array(
                   &#39;id&#39; => 1,
                   &#39;name&#39; => &#39;jiang&#39;
              );
            $k = wei()->zhwCategory()->json(200,&#39;成功咯&#39;,$arr);
            return $k;
            }
로그인 후 복사

Browser: http://127.0.0.1/admin/zhw-categorys/jsons

{"code":200,"message":"\u6210\u529f\u54af","data":{"id":1,"name":"jiang"}}
로그인 후 복사

7.PHP는 XML 데이터를 생성합니다.

7.1PHP는 XML 데이터를 생성합니다.

1. 문자열 어셈블

2 .시스템 클래스 사용: DomDocument XMLWriter

SimpleXML

DomDocument를 사용하는 경우:

    <?php 
                     $dom = new DomDocument(&#39;1.0&#39;,&#39;utf-8&#39;);
                     $element = $dom->createElement(&#39;test&#39;,&#39;This id root element&#39;);
                     $dom->appendChild($element);
                     echo $dom->saveXML();
              ?>
로그인 후 복사

====> 조립된 문자열의 생성:

           <?xml version="1.0" encoding="utf-8"?>
           <test>This is the root element</test>
로그인 후 복사
    public static function xml()
            {
                  header("Content-Type:text/html");
                  $xml = "<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>\n";
                  $xml .= "<root>\n";
                  $xml .= "<code>200</code>\n";
                  $xml .= "<message>数据返回成功</message>\n";
                  $xml .= "<data>\n";
                  $xml .="<id>1</id>\n";
                  $xml .="<name>测试</name>\n";
                  $xml .="</data>\n";
                  $xml .="<root>";
                  echo $xml;
             }
로그인 후 복사
  7.2封装XML数据方法:
          封装方法:xmlEncode($code,$message=&#39;&#39;,$data = array());
         data数据分析:
                 1.array(&#39;index&#39; => &#39;api&#39;);
                 2.array(1,7.89);
        具体:
            server模块下:
로그인 후 복사
    public function xmlEncode($code,$message = &#39;&#39;,$data=array())
             {
                 if(!is_numeric($code)){
                    return "错误";
                 }
                 $result = array(
                     &#39;code&#39; => $code,
                     &#39;message&#39; => $message,
                     &#39;data&#39; => $data,
                 );
                 header("Content-Type:text/xml");
                 $xml = "<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>\n";
                 $xml .= "<root>\n";
                 $xml .=self::xmlToEncode($result);
                 $xml .="</root>";
                 echo $xml;
             }
로그인 후 복사
        //对数据再处理
로그인 후 복사
    public function xmlToEncode($data){
               $xml = $attr ="";
               foreach ($data as $key=>$value){
               if(is_numeric($key)){
                   $attr = "id=&#39;{$key}&#39;";
                   $key = "item";
               }
               $xml .= "<{$key} {$attr}>";  //它们{$key} {$attr}之间要有一个小空格
               $xml .=is_array($value) ? self::xmlToEncode($value):$value;
               $xml .="</{$key}>\n";
            }
               return $xml;
            }
로그인 후 복사
某个Controller:
로그인 후 복사

8. 통신 데이터를 캡슐화하는 포괄적인 방법:

     public function xmlsAction()
        {
            $arr = array(
               &#39;id&#39; => 1,
               &#39;name&#39; => &#39;jiang&#39;,
               &#39;type&#39; =>array(4,5,6),
               &#39;test&#39; =>array(1,45,67=>array(1,2,3)),
            );
           $k = wei()->zhwCategory()->xmlEncode(200,&#39;成功咯&#39;,$arr);
           return $k;
         }
로그인 후 복사

마지막 페이지:

서버:

   封装方法:show($code,$message,$data=array(),$type=&#39;json/xml&#39;)
로그인 후 복사
<?php

namespace Miaoxing\Zhw\Service;

use miaoxing\plugin\BaseModel;

class ZhwCategory extends BaseModel
{
    const JSON = "json";
    /**
     * 按x综合方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * @param string $type 数据类型
     * return string
     */
    public function show($code,$message=&#39;&#39;,$data=array(),$type = self::JSON)
    {
        if (!is_numeric($code)){
            return "错误编码";
        }
        $result = array(
            &#39;code&#39; => $code,
            &#39;message&#39; => $message,
            &#39;data&#39; => $data,
        );
        if($type == &#39;json&#39;){
            self::json($code,$message,$data);
            exit;
        }elseif($type == &#39;array&#39;){
            var_dump($result);
        }elseif ($type == &#39;xml&#39;){
            self::xmlEncode($code,$message,$data);
            exit;
        }else{
            //TODO
        }
    }
    /**
     * 按json方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * return string
     */
    public  function json($code,$message = &#39;&#39;,$data = array())
    {
        if (!is_numeric($code)){
            return &#39;错误&#39;;
        }
        $result = array(
            &#39;code&#39; => $code,
            &#39;message&#39; => $message,
            &#39;data&#39; => $data
        );
        echo json_encode($result);
        exit;
    }
    /**
     * 按xml方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
     * return string
     */
    public function xmlEncode($code,$message = &#39;&#39;,$data=array())
    {
        if(!is_numeric($code)){
            return "错误";
        }
        $result = array(
            &#39;code&#39; => $code,
            &#39;message&#39; => $message,
            &#39;data&#39; => $data,
        );
        header("Content-Type:text/xml");
        $xml = "<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>\n";
        $xml .= "<root>\n";
        $xml .=self::xmlToEncode($result);
        $xml .="</root>";
        echo $xml;
    }
    //对数据再处理
    public function xmlToEncode($data){
        $xml = $attr ="";
        foreach ($data as $key=>$value){
            if(is_numeric($key)){
                $attr = "id=&#39;{$key}&#39;";
                $key = "item";
            }
            $xml .= "<{$key} {$attr}>";
            $xml .=is_array($value) ? self::xmlToEncode($value):$value;
            $xml .="</{$key}>\n";
        }
        return $xml;
    }
}
로그인 후 복사

위 내용은 PHP로 APP 인터페이스를 개발하는 전체 과정 (1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿