OctoberCMS에서 웹 API 구현
4194 단어 OctoberCMSPHPWebAPI라라벨CMS
TLTR
Backend\Classes\Controller
를 확장하여 컨트롤러를 구현합니다. 개요
여기에서는 RESTful이 아닌 Web API의 구현을 설명한다.
RESTful API의 구현에는 OctoberCMS RESTful 플러그인를 사용하면 좋다.
또, 뷰 템플릿으로부터 Ajax로 호출하는 엔드포인트를 갖고 싶은 경우는, OctoberCMS의 Ajax 핸들러 로서 컴퍼넌트에 구현하는 것이 표준적인 방법이다.
배경
일부러 별도로 Web API를 구현하는 경우는 DB에 보관한 데이터(리소스)를 작성, 취득, 변경, 삭제하는 것이 아니라, 예를 들면 이미지 파일을 생성하여
<img>
의 src
로 지정하고 싶다. 경우 등.RESTful 플러그인은 어디까지나 RESTful용이므로, 모델 클래스를 통한 DB 데이터의 CRUD에만 대응하고 있기 때문에, 이런 경우에는 적합하지 않다.
또, Web API의 구현은 간단하기 때문에, 일단 파악해 두는 것만으로도 이해가 깊어져 좋다.
구현 방법
자체 플러그인의 적절한 디렉토리에 컨트롤러 클래스를 만듭니다.
디렉토리는 어디서나 좋지만, 장래에 RESTful 플러그인 를 사용할 가능성을 생각하면, 이것에 맞추어 플러그 인 루트에
http
디렉토리를 작성하는 것이 좋을지도.컨트롤러는
Backend\Classes\Controller
를 확장하여 구현한다. 보다 기본적인 Laravel의 컨트롤러 클래스를 사용하는 것보다, 이쪽이 프로젝트의 설정등을 계승해 주기 때문에 훨씬 편하다.<?php namespace Cocci\Custom\Http;
use Backend\Classes\Controller;
class Images extends Controller
{
public function hoge()
{
return response()->json([
'name' => 'pikanji',
'state' => 'Cebu'
]);
}
}
이 예제는 단순히 JSON 형식으로 데이터를 반환합니다.
그런 다음 플러그인 루트에 routes.php 파일을 만들어 API 경로와 컨트롤러를 연결합니다.
<?php
Route::get('images', 'Cocci\Custom\Http\Images@hoge');
이상으로
/images
엔드 포인트의 완성.라우팅에 대해서는 여기 OctoberCMS 문서에도 상세하게 쓰여 있다.
참고로 RESTful 플러그인이 하고 있듯이 API 경로에 접두사를 붙여 그룹화하면 엔드포인트가 늘어날 때 깔끔하게 정리된다.
<?php
Route::group(['prefix' => 'api/v1'], function () {
Route::get('images', 'Cocci\Custom\Http\Images@hoge');
});
이 예에서는
/api/v1/images
라는 엔드포인트가 된다.
Reference
이 문제에 관하여(OctoberCMS에서 웹 API 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pikanji/items/f0538c68dccc1af5071d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)