2013-05-07 2 views
0

RESTful 서비스에 대해 읽은 바에 따르면, 레코드 ID가있는 URL에 대한 요청을 사용하여 데이터베이스 레코드와 같은 "리소스"를 얻을 수 있다고 가정합니다. 끝, 다음과 같이 : localhost/my_records/1. 이러한 URL에 액세스하면 ID 1에 대한 레코드 정보가있는 웹 페이지가 표시됩니다.PHP가있는 REST와 유사한 URL

PHP/Apache/MySQL에서 이와 비슷한 기능을 구현해야하지만 필자는 아직 비교적 새로운 언어입니다. 내가 만들 수있는 가장 큰 것은 localhost/my_records/index.php? id = 1과 같습니다.

[ "/ id"] URL을 만들면 해당 폴더를 만들어야합니다. 이것을 달성 할 수있는 방법이 있습니까?

+2

URL 재 작성을 원한다고 들립니다. Apache 용 mod_rewrite를 찾아보십시오. 예를 들어 http://www.mysite.com?id=1을 http : //www.mysite로 다시 작성할 수있는 codeigniter가 있습니다.co.kr/id/1과 동일한 결과를 얻을 수 있습니다. – Chad

+0

[Slim Framework] (http://www.slimframework.com/)이 도움이 될 수 있습니다. –

답변

1

등의 방법으로 액세스 할 수 있습니다. 모든 종류의 URL에 RESTful 서비스를 사용할 수는 있지만 끝에있는 ID로 URL을 수행 할 필요는 없습니다.이 유형의 URL은 다음과 같습니다. 편의성과 디자인 원칙이 우수합니다.

그렇지 않으면 이러한 유형의 URL은 "친숙한 URL"로도 알려져 있습니다. 대부분의 PHP 프레임 워크는 Symfony, Code Igniter, Laravel ... 등과 같은 유형의 URL을 제공합니다. 당신이 어떤 PHP 프레임 워크를 사용하지 않고 URL의 유형을 원한다면, 당신이 응답과 응답을 확인할 수 있습니다

: 제 생각에는 How to create friendly URL in php?

는 좋은 REST API를 구현하는 좋은 프레임 워크 코드 점화 + 필 철갑 상어 나머지입니다 고객. 추가 정보 : 당신이 찾고있는 무엇을 본질적으로

+0

감사합니다. mod_rewrite는 내가해야 할 일에 완벽하게 작동합니다. 정말 새로운 프레임 워크를 배울 시간이 없으므로 가장 간단한 해결책이됩니다. 나는 더 먼 미래의 틀을 조사 할 것이다. 감사! – tutiplain

0

모든 요청을 단일 PHP 스크립트를 통해 라우팅하도록 웹 서버를 구성하십시오. 이렇게하면 검색된 URL을 구문 분석 할 수 있습니다. 아파치를 사용하고 있기 때문에 mod_rewite 가야합니다.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [L] 

이 의지 경로를 경로/index.php를 통해 (해당 스크립트에 전달 무엇을 원하는 경우 선이를 제거하고 3) 존재하지 않는 파일에 대한 모든 요청. 그러면 스크립트에서 액세스 한 URL에 $_SERVER['REQUEST_URL']

+0

감사합니다. 그래도 정규 표현식을 배울 필요가 있습니다. – tutiplain

0

일반적으로 요청 라우팅이라 무언가이다. 일반적으로 이것은 서버 수준과 앱 수준의 구성 조합으로 구현됩니다.

  • 모든 요청 (또는 특정 형식의 요청)을 처리 할 단일 응용 프로그램 리소스로 보내는 일종의 서버 리디렉션 (RewriteRule 또는 FallBackResource 지시문 사용).
  • URI 및 HTTPS 동작 (GET, POST, PUT, DELETE, HEAD 등)을 구문 분석하고 요청을 라우팅하는 방법을 결정하는 응용 프로그램 논리 (즉, 어떤 컨트롤러가 처리해야하는지)
  • 가끔은 일종의

여기에는 많은 PHP 프레임 워크가 있습니다. 최소한이 지침을 찾아 볼 수는 있습니다. (예 : JSON/XML/HTML) 모두 사용하지 않을 경우).

관련 문제