2014-09-28 6 views
0

laravel에 작은 TV 쇼 라이브러리를 구축 중입니다. 향후 확장을 위해 API도 포함하고 싶습니다. 필자는 처음 컨트롤러 하나와 API 컨트롤러 및 웹 프론트 엔드 컨트롤러가 있어야하는 컨트롤러를 2 개 가지고있었습니다. 그들은 모두 같은 논리를 처리했습니다. 이는 중복 코드로 이어지기 때문에 분명히 좋지 않습니다.laravel에서 자체 API를 기반으로 구축 된 웹 사이트를 구성하는 방법

어떻게 응용 프로그램 API를 중심으로 만들 수 있습니까? 나는 모든 로직을 처리하고 API 컨트롤러가 리턴 한 JSON 객체를 단순히 프론트 엔드에 전달하는 JSON 객체와 일반 컨트롤러를 반환하는 API 컨트롤러를 가지고 생각하고 (뷰가있는 경우 처리 후) 뷰에 전달합니다. . 그게 방법 일 텐데요, 내가 어떻게 그 물건을 되 찾을까요? 내 서버에 GET 요청이 있습니까?

답변

0

API를 개발하는 경우 부하 양식의 기본 웹 서버를 분리하기 위해 별도의 서버에 있어야합니다. 동일한 서버에있는 경우 API로 작동하고 웹 컨트롤러에서 호출 할 수있는 클래스를 개발할 수있는 이유는 무엇입니까?

나중에 별도의 서버를 사용하기로 결정한 경우 해당 클래스를 중심으로 API contoller를 래핑하면됩니다.

<?php 
$myApi = new MyApi(); 
$myApi->setParmas($paramsArray); 
$myApi->doLogic(); 
echo $myApi->asJson(); 

// or make API class that can handle one liner 
echo MyApi::factory($_GET)->doLogic()->toJson(); 
?> 
0

는 Laravel 응용 프로그램의 API 엔드 포인트 확인하고 클라이언트 측을 처리하기 위해 프론트 엔드 프레임 워크 또는 일부 프론트 엔드 라우팅 및 템플릿 라이브러리를 사용합니다. 그것은 단지 API 엔드 포인트와 같이

이름 공간 /api 및 버전과 API는 즉 /api/v1

이, 당신은 쉽게 백엔드를 다시 작성해야 여러 가지 기술을 개발하지 않을 수 있습니다. 그것은이하는 모든 데이터, 검증, 요청, 보안을 처리하기 때문에

그런 다음 등 등 당신의 웹 애플리케이션, 아이폰 OS 응용 프로그램, 안드로이드 응용 프로그램을 제공 할 수

0
당신은 필요한 데이터를 얻기 위해 저장소를 사용할 수 있습니다

, 그런 다음 View에 전달하여 웹 페이지를 만들거나 API 용 JSON 만 인쇄하면 중복 코드를 방지 할 수 있습니다.

Route::get('/latest', function() { 
    return View::make('latest', Movie::latest()); 
} 
Route::get('/api/latest', function() { 
    return json_encode(Movie::latest()); 
} 

확인 Laravel의 저장소에 대한 자세한 정보를 원하시면이 비디오는 : 애벌레 5.3에서 http://vimeo.com/53029232

관련 문제