2
내가 다시 작성하는 웹 사이트는 대부분의 콘텐츠를 수집하기 위해 자체 API를 사용합니다 (예 : http://api.example.com/). 이에 대한 해답은 아주 자명하지만, 진행하기 전에 확실하게 알고 싶습니다.페이지에 API를 포함시키는 가장 효율적인 방법은 무엇입니까?
내가 아는 한, PHP를 통해 API에서 데이터를로드하는 2 가지 (잠재적으로 3 가지) 옵션이 있습니다.
- 나는 문서에 클래스를로드하는 클래스 (아마도 최선의 방법에서 수동으로 데이터를 수집,하지만 더 많은 코드를 필요로하며, 변경 사항이 클래스에 만들어진 경우, 나는 페이지와 API를 변경할 수 있습니다 API를 변경하는 대신 문서 사용)
file_get_contents('http://api.example.com/search')
을 사용하십시오. 이것은 가장 쉬운 방법이지만 다른 HTTP 요청이 필요하며 약간 느린 것으로 가정합니다.- 마지막으로 이것이 가능한 경우 최선의 방법이라고 생각하지만 내 지식으로는 가능하지 않다고 생각합니다. 파일을
$_GET
매개 변수로 로컬에서 읽고이 방법으로 결과를 얻으십시오. 이 가능하시기 바랍니다 경우$API = 'http://api.example.com/search?query=test' $data = file_get_contents(url_encode($API));
3. 확실하지 않음 (무시 실수)와 같은
예
1.
// Include the mysql connections
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_connections/mysql.company.php');
// Include the Classes (Company and Facebook)
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_classes/class.company.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_classes/class.mysql.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_facebook/config.facebook.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_facebook/class.facebook.php');
// Create the objects (Company, MySQL, Memcache and Facebook)
$memcache = new memcache;
$facebook = new Facebook($facebook_config);
$mysql = new mysql($memcache);
$company = new company($_DATABASES,$_CONNECTIONS,$mysql,$memache,$facebook);
// CALL THE RELEVANT CLASS METHOD HERE
2. 뭔가 나는 그걸 사용하기를 원치 않는다. 내가 멋지게 포장 된 클래스 설정이 작업하기가 훨씬 쉬울 것 확신 대부분의 장소에서의의 Oauth 등으로 API 요즘입니다 - 마지막 방법은
$parameters = array(
'method'=>'GET',
'parameters'=>array(
'function'=>'search',
'query'=>'test'
)
);
$API = some_cool_function('/_scripts/api/2/api/api.php',$parameters);
// I DO NOT WANT TO DO THIS FOR CERTAIN REASONS:
$_GET=array(
'function'=>'search',
'query'=>'test'
);
$data = include('/_scripts/api/2/api/api.php');
입력 해 주셔서 감사합니다. 세 번째 옵션은 가능하지 않습니까? –
나는 api.php에 무엇이 있는지에 달려 있다고 생각합니다.하지만 $ _GET을 수동으로 채우는 것만으로도 좋은 습관은 아닙니다. 방법 2와 3은 단순하고 멋지게 보입니다.하지만 실제로는 나이가 먹어 치우지 않아 문제가 끝나지 않을 것입니다. 간단히 업데이트 할 수있는 클래스를 사용하면 메서드 호출 등을 변경해야 할 필요가 거의 없습니다. 모든 것을 $ 데이터에 집어 넣을 수도 있습니다. 실제로 수행하는 것이 이상한 일이 아니라면. – BenOfTheNorth
api.php는 API 함수로 인해 JSON으로 인코딩 된 문자열을 반환하기 때문에 $ data에 결과가 표시됩니다. 나는 $ _GET 매개 변수를 설정하고 파일을 포함하는 것이 나쁜 습관이라는 것에 더 동의하지 않을 수있다. 그것은 끔찍한 연습이다 !! –