개발 꿀팁/PHP

php에서 인터페이스를 호출하고 인터페이스를 작성합니다

Jammie 2022. 7. 11. 14:32
반응형

예:
http://localhost/openUser.php?act=get_user_list&type=json

여기서 openUser.php는 하나의 인터페이스에 해당하는데, 여기서 get_user_list는 하나의 API(사용자 목록 획득)로 반환되는 데이터를 요구한다.형식은 JSON 형식입니다.

당신이 당신의 PHP 코드에서 이 링크만 실행하면 그는 돌아올 것이다.
GET 방식의 직접 사용
$file_contents = file_get_content ('http: // localhost/ openUser').php?act=get_user_list&type=json')

POST 방식은 다음과 같습니다(PHP curl 지원을 켜야 합니다).
$url = 'http://localhost/openUser.php?act=get_user_list&type=json';
$ch = curl_init (;)
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1)
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt ($ch, CURLOPT_POST, 1) // POST 커밋 사용
$file_contents = curl_exec ($ch)
curl_close ($ch)



php에 인터페이스 쓰기

1. 먼저 두 가지 질문에 간단히 대답한다.

1.PHP는 클라이언트를 개발할 수 있다?
A: 안돼, PHP가 발이라서.본 언어는 B/S 아키텍처의 완성을 책임지는 언어입니다. 또는 C/S 아키텍처의 S 부분, 즉 서비스 측의 개발.(GTK, WinBinder 고민하지 마)

2. 왜 PHP를 선택했는지서비스 개발을 위한 첫 번째 선택은?
A: 크로스 플랫폼 (UN에서 실행 가능)IX, LINUX, WINDOWSMac OS 아래), 저소비(PHP는 상당히 적은 시스템 자원을 소모한다), 가동 효율이 높다(상대적으로), MySQL의 완벽한 콤비는 그 자체로 무료 오픈 소스입니다.....

2. PHP 개발 방법 API(Application) Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는?

API를 해본 분들은 아시겠지만사실 개발 API는 개발 WE보다B는 간결하지만 논리가 더 복잡할 수 있습니다. API는 사실 데이터 출력이기 때문에 페이지를 제시하지 않아도 되기 때문에 MVC는 존재하지 않습니다(API는 M과 C뿐입니다).
1.WEB 개발과 마찬가지로우선 관련 파라미터가 필요합니다.모든 클라이언트에서 전달됩니다. 아마도 GET가 POST일 것입니다. 이것은 개발팀끼리 서로 약속하거나 통일된 규범을 만들어야 합니다.
2. 파라미터가 있으면 응용 수요에 따라, 작업 진행률 변경 등 데이터 처리 완료신규, 앱 내 구매, 게임 종료 데이터 제출 등
3. 데이터 로직 처리 완료 후, 돌아가기클라이언트에 필요한 관련 데이터를 되돌립니다. 예예: 미션 상태, 구매 결과, 플레이어 정보 등
데이터를 어떻게 클라이언트에 반환합니까?
JSO와 같은 직접 출력 형식N, XML, TEXT 등등.
4. 클라이언트가 당신이 반환한 수를 가져옵니다.이후에 클라이언트 로컬에서 사용자와 상호 작용하기

간단한 API를 임시 API 예:

<?php
$output = array();
$a = @$_GET['a'] ? $_GET['a'] : '';
$uid = @$_GET['uid'] ? $_GET['uid'] : 0;

if (empty($a)) {
    $output = array('data'=>NULL, 'info'=>'갱부야!', 'code'=>-201);
    exit(json_encode($output));
}

//연줄을 대다
if ($a == 'get_users') {
    //사용자 검사
    if ($uid == 0) {
        $output = array('data'=>NULL, 'info'=>'The uid is null!', 'code'=>-401);
        exit(json_encode($output));
    }

    //$mysql이 데이터베이스라고 가정하기
    $mysql = array(
        10001 => array(
            'uid'=>10001,
            'vip'=>5,
            'nickname' => 'Shine X',
            'email'=>'979137@qq.com',
            'qq'=>979137,
            'gold'=>1500,
            'powerplay'=> array('2xp'=>12,'gem'=>12,'bingo'=>5,'keys'=>5,'chest'=>8),
            'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),
            'ctime'=>1376523234,
            'lastLogin'=>1377123144,
            'level'=>19,
            'exp'=>16758,
        ),
        10002 => array(
            'uid'=>10002,
            'vip'=>50,
            'nickname' => 'elva',
            'email'=>'elva@ezhi.net',
            'qq'=>NULL,
            'gold'=>14320,
            'powerplay'=> array('2xp'=>1,'gem'=>120,'bingo'=>51,'keys'=>5,'chest'=>8),
            'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),
            'ctime'=>1376523234,
            'lastLogin'=>1377123144,
            'level'=>112,
            'exp'=>167588,
        ),
        10003 => array(
            'uid' => 10003,
            'vip' => 5,
            'nickname' => 'Lily',
            'email' => 'Lily@ezhi.net',
            'qq' => NULL,
            'gold' => 1541,
            'powerplay'=> array('2xp'=>2,'gem'=>112,'bingo'=>4,'keys'=>7,'chest'=>8),
            'gems' => array('red'=>13,'green'=>3,'blue'=>9,'yellow'=>7),
            'ctime' => 1376523234,
            'lastLogin'=> 1377123144,
            'level' => 10,
            'exp' => 1758,
        ),
    );
    
    $uidArr = array(10001,10002,10003);
    if (in_array($uid, $uidArr, true)) {
        $output = array('data' => NULL, 'info'=>'The user does not exist!', 'code' => -402);
        exit(json_encode($output));
    }

    //데이터베이스를 조회하다
    $userInfo = $mysql[$uid];
    
    //출력 데이터
    $output = array(
        'data' => array(
            'userInfo' => $userInfo,
            'isLogin' => true,//첫 상륙 여부
            'unread' => 4,//읽지 않은 메시지 수
            'untask' => 3,//임무를 완수하지 못하다
        ), 
        'info' => 'Here is the message which, commonly used in popup window', //消息提示,客户端常会用此作为给弹窗信息。
        'code' => 200, //성공과 실패의 코드는 일반적으로 양수 또는 음수이다
    );
    exit(json_encode($output));
} elseif ($a == 'get_games_result') {
    //...
    die('get_games_result 인터페이스를 조정하고 있습니다!');
} elseif ($a == 'upload_avatars') {
    //....
    die('upload_avatars 인터페이스를 조정하고 있습니다!');
}

3. 실제 프로젝트 중 API를 개발함에 있어 주의해야 할 몇 가지 사항(참고용으로만):
1. 단일 파일로 다중 인터페이스를 구현하는 형식은 여러 가지가 있습니다. 예를 들어 if..elseif.. 또는 switch 또는 동적 방법 (예: TP의 이 접근 함수 본체의 형식)
2. 데이터 출력에 가장 좋은 json, json은 매우 강력한 크로스 플랫폼성을 가지고 있다.주요 주요 프로그래밍 언어들은 json 해석을 지원하는데, json은 점차 xml를 대체하여 인터넷 데이터의 일반적인 형식이 되고 있다.
3. 인터페이스 보안, 반드시 인터페이스 검증을 늘려야 한다.예를 들어 클라이언트와 서비스 단위는 인터페이스별로 통일되어 있습니다.암호화 방식은 서비스 측에서 매번 인터페이스를 검증해야 한다.인터페이스가 악의적으로 업데이트되거나 해커들이 악의적으로 호출하는 것을 방지하고, 특히 대형 상업용 응용 프로그램을 방지한다.
4, 온라인 API에 대해서는 모든 인터페이스가 정상이고 모든 오류 메시지가 닫히도록 해야 합니다 => error_reporting(0), JSON을 출력할 때 다른 출력을 사용할 수 없습니다. 그렇지 않으면 클라이언트는 데이터를 해석하지 못합니다. 직접 Crash!
5. 개발 API와 WEB는 차이가 있습니다. WEB라면 가능합니다.코드가 잘못되어 특별히 심각한 오류는 발생하지 않으며, 데이터 쓰기 및 조회 실패, WEB의 일부분이 잘못 정렬되거나 코드가 흐트러질 수 있습니다.하지만 API라면 Crash!
6. 인터페이스 개발을 할 때 프레임워크 개발을 권장하지 않습니다. 이유는 요약하면 두 가지입니다. (사실 제가 약간 바람을 쐬고 있습니다.)위험합니다. 본인도 TPer 한 장입니다. 결국 TP의 홈페이지입니다.
  1) 클라이언트는 일반적으로 서비스 측의 응답속도가 매우 높기 때문에 가장 원시적인 PHP는 인터페이스 개발을 완료하는 것이 가장 효율적입니다. 만약 프레임을 사용할 경우 불필요한 파일을 로드해야 한다면 여름에 겨울 옷을 입는 것과 같습니다.상상해봐, 네가 핸드폰을 가지고 놀 때 사용해라.응용 프로그램마다 마음대로 조작하여, 반나절이나 기다린 후에야 인기척이 났는데, 너 참았니?

  2) 위 4번에서 언급한 바와 같이 프레임워크는 WEB 개발에는 행복한 일이지만,API에 대해 말하자면, 당신은 그것이 당신에게 어떤 실수를 일으킬지 상상도 할 수 없습니다!결국 넌 괴로워할 거야~~ 많은 프레임이 WEB를 위해 탄생했으니까 (나도 언젠가 꼭 보고 싶어)API를 통해 생성된 프레임워크 또는 확장)

  이것은 인터페이스 효율과 안정성, 코드를 봐야 하는 사람, 어떤 사람은 그것을 돌려줄 수 있다.프레임이 빨리 달리는 것보다, 어떤 사람들은 프레임을 사용하는 데 아무런 문제가 없다고 생각한다. 여기서는 단지 조언일 뿐, 자신의 실제 상황을 관건적으로 보고 동시에 코드를 온라인에 올리기 전에 테스트해 볼 것을 권고한다.

  텐센트 웨이보 타오바오 등 오픈 플랫폼도 빼놓을 수 없다.사실 오픈 플랫폼은개방이란 당신이 그들이 제공한 기술 문서에 따라 그들이 만든 형식과 요구 사항에 따라 그들이 제공한 인터페이스 파일(일반적으로 JSON 또는 X로 반환됨)을 조정하는 인터페이스를 제공하는 것이다.ML)당신은 그들에 관한 정보를 얻을 수 있습니다. 예를 들면, QQ사용자 기본 정보, 타오바오 매장, 상품 정보 등.그런 다음 이러한 메시지에 따라 당신의 앱에서 상호 작용을 완성하십시오.

  사실 ajax도 API를 호출하는 인터페이스입니다

반응형