이 라이브러리는 적극적으로 개발되지 않았습니다.
대신 guzzlehttp/guzzle 또는 다른 라이브러리를 고려하십시오.
버그 수정 만.
Hyper는 HTTP 호출을 수행하고 API 데이터를 가져오고 조작하기위한 간단하지만 강력한 인터페이스를 제공하는 HTTP 클라이언트입니다.
Hyper::get('http://some/url') .Hyper::make(...)->get('http://some/url') 지원합니다.Response 객체를 제공합니다.Response rexlabs array-object의 혼합으로 API 응답을 쉽게 조사 할 수 있습니다.$response->getRequest() 를 통해 원래 Request 에 액세스 할 수 있습니다. <?php
use Rexlabs HyperHttp Hyper ;
$ response = Hyper:: get ( ' http://openlibrary.org/subjects/love.json ' );
// The first book for 'love' is: Wuthering Heights
echo " The first book for ' { $ response -> name } ' is: { $ response -> works -> first ()-> title }n" ;
echo " Total works: { $ response -> works -> count ()} books n" ;프로젝트에 설치하려면 :
composer require rexlabs/hyper-http RESTful Methods는 모두 응답과 상호 작용하는 Response 객체를 반환합니다.
<?php
use Rexlabs HyperHttp Hyper ;
$ response = Hyper:: get ( ' https://example.com/url ' );
echo ' Status Code: ' . $ response -> getStatusCode (). "n" ;
echo ( string ) $ response ; // Output the response body응답은 Mixin ArrayObject이므로 응답에서 값을 쉽게 가져오고 조작 할 수 있습니다.
<?php
use Rexlabs HyperHttp Hyper ;
// Fetch historical price via CryptoCompare's public API for Ethereum
$ response = Hyper:: get ( ' https://min-api.cryptocompare.com/data/pricehistorical ' , [
' fsym ' => ' ETH ' ,
' tsyms ' => ' BTC,USD ' ,
' ts ' => ' 1452680400 ' ,
]);
// Output prices
printf ( " ETH->USD: %s n" , $ response -> get ( ' ETH.USD ' ));
printf ( " ETH->BTC: %s n" , $ response -> get ( ' ETH.BTC ' )); make() 사용하여 인스턴스화를 단순화 한 다음 향후 요청에 대한 개체를 설정하십시오.
<?php
use Rexlabs HyperHttp Hyper ;
use Rexlabs Logger CustomLogger ;
$ hyper = Hyper:: make ()
-> setBaseUri ( ' http://example.com/api/v1 ' )
-> setHeader ( ' X-App-Identity ' , ' Some App ' )
-> setHeader ( ' X-Correlation-Id ' , ' 12345 ' )
-> setLogger ( new CustomLogger );$hyper = Hyper::make(array $config = [], GuzzleHttpClient $guzzle, PsrLogLoggerInterface $logger)인스턴스화를 완전히 제어하려면 생성자를 사용하고 Guzzle 인스턴스를 전달하십시오.
<?php
use Rexlabs HyperHttp Client ;
use GuzzleHttp Client as GuzzleClient ;
use Psr Log NullLogger ;
$ hyper = new Client ( new GuzzleClient (), new NullLogger (), [
' base_uri ' => ' http://example.com/api/v1 ' ,
' headers ' => [
' X-App-Identity ' => ' Some App ' ,
],
]);
$ response = $ hyper -> get ( ' /messages ' );마지막 요청을 재현하기 위해 명령 줄에서 실행하라는 컬 요청을 쉽게 생성 할 수 있습니다.
<?php
use Rexlabs HyperHttp Hyper ;
echo Hyper:: get ( ' https://example.com/api/v1/resources ' )
-> getCurlRequest ();산출:
curl
' https://min-api.cryptocompare.com/data/pricehistorical?fsym=ETH&tsyms=BTC%2CUSD&ts=1452680400&extraParams=your_app_name '
-H ' Content-Type: application/json ' -H ' Accept: application/json ' Hyper는 원격 엔드 포인트와 상호 작용하는 다음 방법을 제공합니다.
get(mixed $uri, array $query = [], array $headers = [], array $options = []): Response
HTTP GET 요청을 보내고 응답을 반환하십시오.
$ response = Hyper:: get ( ' https://example.com ' , [ ' sort ' => ' latest ' ], [ ' X-Greeting ' => ' Hello! ' ]);
$ response = $ hyper -> get ( ' /v1/people ' );$uri 는 문자열 또는 Uri 입니다. 문자열이 절대적이지 않으면 기본 URI에 추가됩니다.$query URI에 추가 될 쿼리 매개 변수의 선택적 배열입니다.$headers 모든 글로벌 헤더와 병합 될 옵션 헤더 (헤더 이름으로 색인)입니다.$options 선택적 Guzzle 클라이언트 옵션 배열입니다. post(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTP Post 요청을 보내고 응답을 반환하십시오.
$ response = Hyper:: post ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> post ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uri 는 문자열 또는 Uri 입니다. 문자열이 절대적이지 않으면 기본 URI에 추가됩니다.$body 는 페이로드입니다. 배열을 제공하면 JSON으로 변환 및 전송됩니다.$headers 모든 글로벌 헤더와 병합 될 옵션 헤더 (헤더 이름으로 색인)입니다.$options 선택적 Guzzle 클라이언트 옵션 배열입니다.대체 방법 :
$response = $hyper->postForm($uri, $formParams, $headers, $options);$response = $hyper->postMultipartForm($uri, $formParams, $headers, $options); put(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTP Put 요청을 보내고 응답을 반환하십시오.
$ response = Hyper:: put ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> put ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uri 는 문자열 또는 Uri 입니다. 문자열이 절대적이지 않으면 기본 URI에 추가됩니다.$body 는 페이로드입니다. 배열을 제공하면 JSON으로 변환 및 전송됩니다.$headers 모든 글로벌 헤더와 병합 될 옵션 헤더 (헤더 이름으로 색인)입니다.$options 선택적 Guzzle 클라이언트 옵션 배열입니다. patch(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTP 패치 요청을 보내고 응답을 반환하십시오.
$ response = Hyper:: patch ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> patch ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uri 는 문자열 또는 Uri 입니다. 문자열이 절대적이지 않으면 기본 URI에 추가됩니다.$body 는 페이로드입니다. 배열을 제공하면 JSON으로 변환 및 전송됩니다.$headers 모든 글로벌 헤더와 병합 될 옵션 헤더 (헤더 이름으로 색인)입니다.$options 선택적 Guzzle 클라이언트 옵션 배열입니다. delete(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTP 삭제 요청을 보내고 응답을 반환합니다.
$ response = Hyper:: delete ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> delete ( ' /v1/people/1 ' );$uri 는 문자열 또는 Uri 입니다. 문자열이 절대적이지 않으면 기본 URI에 추가됩니다.$body 는 선택적 페이로드입니다. 배열을 제공하면 JSON으로 변환 및 전송됩니다.$headers 모든 글로벌 헤더와 병합 될 옵션 헤더 (헤더 이름으로 색인)입니다.$options 선택적 Guzzle 클라이언트 옵션 배열입니다. call(string $method, mixed $uri, mixed $body, array $headers, array $options): Response
method 첫 번째 인수로 지정하여 일반 HTTP 요청을 보냅니다.
// Statically
$ response = Hyper:: call ( ' MOVE ' , ' myfile1234 ' , [ ' new_location ' => ' some_folder ' ]);
// Http method verbs may also be invoked via method name
$ response = Hyper:: move ( ' myfile1234 ' , [ ' new_location ' => ' some_folder ' ]);
$ response = Hyper:: somethingelse (...);
// Via object
$ response = $ hyper -> call ( ' MOVE ' , ' myfile1234 ' , [ ' new_location ' => ' some_folder ' ]);$method 은 HTTP 동사입니다. 예를 들어. 표준의 일부가 아닌 것을 GET 거나 무언가.$uri 는 문자열 또는 Uri 입니다. 문자열이 절대적이지 않으면 기본 URI에 추가됩니다.$body 는 선택적 페이로드입니다. 배열을 제공하면 JSON으로 변환 및 전송됩니다.$headers 모든 글로벌 헤더와 병합 될 옵션 헤더 (헤더 이름으로 색인)입니다.$options 선택적 Guzzle 클라이언트 옵션 배열입니다. RexlabsHyperHttpMessageRequest 객체에서 제공되는 메소드 :
이 요청에 대해 URI/URL을 캡슐화하는 Uriinterface 객체를 반환하십시오.
이 요청에 대해 HTTP 메소드 동사를 반환하십시오.
이 Request 에 대한 헤더 배열을 retur
명령 줄에서 실행하는 데 적합한 컬 요청 (문자열)을 반환합니다. 디버깅 요청에 유용합니다.
RexlabsHyperHttpMessageResponse 객체에서 사용할 수있는 메소드 :
rexlabs hyperhttp message Response 과 관련된 RexlabsHyperHttpMessageRequest 객체를 반환합니다
명령 줄에서 실행하는 데 적합한 컬 요청 (문자열)을 반환합니다. 디버깅 요청에 유용합니다.
이 Response 의 HTTP 상태 코드를 반환하십시오. 예를 들어. 200
상태 코드와 관련된 HTTP 이유 문구를 반환하십시오. 예를 들어. "좋아요"
이것이 JSON 응답이면 true 반환합니다.
JSON 응답을 배열로 변환하고 배열을 반환합니다.
JSON 응답을 ArrayObject 로 변환합니다
모든 Response 객체에는 rexlabsarray-object 패키지에서 ArrayObject 클래스의 모든 메소드와 기능이 있습니다.
이것은 다음 응답 페이로드를 기반으로합니다.
{
"books" : [
{
"id" : 1 ,
"title" : " 1984 " ,
"author" : " George Orwell "
},
{
"id" : 2 ,
"title" : " Pride and Prejudice " ,
"author" : " Jane Austen "
}
]
}다음 기능을 수행 할 수 있습니다.
$ response -> books ; // Instance of ArrayObject
$ response -> books -> pluckArray ( ' author ' ); // array [ 'George Orwell', 'Jane Austen' ]
$ response -> pluckArray ( ' books.author ' ); // array [ 'George Orwell', 'Jane Austen' ]
$ response -> books -> count (); // 2
$ response -> books -> isCollection (); // true
$ response -> books [ 0 ]; // Instance of ArrayObject
$ response -> books [ 0 ]-> isCollection (); // false
$ response -> books [ 0 ]-> id ; // 1
$ response -> get ( ' books.1.title ' ); // "Pride and Prejudice"
foreach ( $ response -> books as $ book ) {
echo "{ $ book -> title } by { $ book -> author }n" ;
}당신은 또한 전화 할 수 있습니다 :
$ obj = $ response -> toObject (); // Instance of Arraybject 모든 클라이언트에 대한 기본 구성을 설정합니다 (기본값으로 [])
Hyper:: setDefaultConfig ( $ config );이 클라이언트에 대한 구성 설정 (값은 기본값과 재정의 / 병합)
$ client = Hyper:: make ( $ config ); 제공하지 않는 모든 클라이언트가 사용하는 기본 로거를 설정하십시오.
LoggerInterface 구현해야합니다 (기본값으로 NullLogger )
Hyper:: setDefaultLogger ( $ logger );모든 요청에 대해 컬 스트링을 기록합니다 (로거 세트가 필요합니다)
$ config = [
' log_curl ' => true ,
]; 전달 된 구성을 기본 GuzzleClient 로 설정하십시오
$ config = [
' guzzle ' => [
' verify ' => false ,
],
];
// Set for all clients
Hyper:: setDefaultConfig ( $ config );
// Set for one client
$ client = Hyper:: make ( $ config );테스트 실행 :
composer tests적용 범위 보고서를 실행하려면 :
composer coverage 적용 범위 보고서는 ./tests/report/index.html 로 출력됩니다
Hyper는 사용자 정의 클라이언트를위한 확장을 허용합니다.
MyHyperSubclass 의 정적 사용은 MyHyperSubclass 에서 생성 된 올바른 인스턴스를 반환합니다.Hyper 의 정적 사용은 Hyper 로 생성 된 올바른 인스턴스를 반환합니다.protected static function makeClient 재정의 (예 : new Client new MyClient 로 바꾸는)protected static function makeConfig 재정protected static function makeGuzzleConfigprotected static function getBaseUri 재정의하여 클라이언트에 기본 기본 _URI를 제공합니다. 기부금을 환영합니다. 풀 수십을 제출하거나 문제를 만듭니다. 제출 된 코드는 PSR-1/PSR-2 표준을 사용하여 포맷해야합니다.