>  기사  >  백엔드 개발  >  PHP 인터페이스의 유형은 무엇입니까?

PHP 인터페이스의 유형은 무엇입니까?

王林
王林원래의
2019-09-30 17:45:173717검색

PHP 인터페이스의 유형은 무엇입니까?

1. 인터페이스는 요청자에 따라 두 가지 유형으로 나눌 수 있습니다.

1 다른 내부 프로젝트(js 비동기 요청 인터페이스 및 타이밍 프로그램 포함)에서 호출되는 인터페이스입니다.

2. 주로 외부 개발자의 호출을 위해 제공되는 외부 인터페이스입니다.

두 인터페이스의 가장 큰 차이점은 내부 인터페이스에는 엄격한 인증이 필요하지 않지만 외부 인터페이스에는 다양한 암호화 및 암호 해독 방법이 있으며 가장 일반적이고 간단한 방법은 우리와 같은 http 기본 인증입니다. 백그라운드에서 팝업되는 계정 및 비밀번호 팝업창은 기본 인증을 사용하며, 인증을 통과하려면 계정과 비밀번호를 입력해야 합니다. 그러나 내부 인터페이스에 중요한 작업이 포함되어 있고 다른 사람의 악의적인 요청을 받고 싶지 않은 경우에도 일부 암호화 확인을 수행해야 합니다.

2. 어떤 인터페이스이든 다음 문제를 고려해야 합니다.

1. 매개변수 안전성: 이를 위해 기본적으로 충분할 $_INPUT이 있습니다. 인증이 필요한지 여부: 단지 내부 알림 클래스/콜백 클래스의 인터페이스라면 악의적으로 요청하더라도 정상적인 데이터에는 전혀 영향을 미치지 않습니다. 주문 상태를 동기화하는 인터페이스를 만들겠습니다. 내부 프로세스는 문제가 있는 주문 상태를 쿼리한 다음 해당 주문의 상태를 업데이트하는 것입니다. 이런 인터페이스는 어떤 값도 반환할 필요가 없고, 나쁜 사람이 악의적으로 호출하더라도 영향을 받지 않으므로 인증을 전혀 수행할 필요가 없습니다. 따라서 검증 추가 여부는 인터페이스의 실제 로직에 따라 결정됩니다.

2. 다시 요청해 주실 수 있나요? 예를 들어, 인터페이스가 들어오는 주문 번호를 기반으로 데이터 조각을 삽입하는 경우 여러 데이터 조각이 삽입되지 않도록 반복되는 요청에 대해 판단을 내려야 합니다.

3. 인터페이스 사양 작성

1. try...catch... 구조를 사용하여 작성합니다. (주로 throw는 언제든지 프로그램을 종료할 수 있기 때문입니다.)

2. 상태 코드를 반환합니다. 문서를 작성하려면 다양한 오류 코드의 의미도 명확하게 작성해야 합니다. 호출자가 오류 원인을 쉽게 쿼리할 수 있도록 합니다.

예:

<?php
    $code = 200; // 接口状态码 

    $name = trim($_INPUT[&#39;name&#39;]);
    $age  = trim($_INPUT[&#39;age&#39;]);
    if (empty($name))
    {
        $code = 401;
        throw new Exception(&#39;名字不能为空&#39;);
    }
    if (!is_numeric($age))
    {
        $code = 402;
        throw new Exception(&#39;年龄必须由数字组成&#39;);
    }
    
    $database_obj = new database_class();
    $res = $database_obj->save($name, $age);
    if ( !$res )
    {
        $code = 403;
        throw new Exception(&#39;保存数据失败&#39;);
    }    
    $msg = &#39;ok&#39;;
} catch ( Exception $e ) {
    $msg = $e->getMessage();
}
output_json($code,$data,$msg); // $data可以放置需要返回的数据
// output_json函数在大function里面有~如果不想引入大function的话可以复制一份到自己项目
// ========END=======

추천 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP 인터페이스의 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.