사진 AC의 다운로드 수를 그래프화하고 싶은 【API 서버 구축편】 ~1일 10행 코딩~
5일째
【기술 테마】
PHP로 API 구축
언어
목표 아티팩트
오늘은 마지막까지 데이터 JSON으로 반환하는 API를 만들고 싶습니다.
코드 및 자료
1. PHP,composer의 환경 구축
PHP 설치
brew install [email protected]
composert 설치
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
이것만으로 완결되었습니다.
2. Lavavel로 프로젝트 만들기
아래의 명령으로 Laravel에서 API의 기초가되는 프로젝트를 구축합니다.
composer create-project --prefer-dist laravel/laravel photo_ac_graf
이것만으로 Laravel 프로젝트를 할 수 있기 때문에 매우 간단합니다.
이 상태에서 프로젝트의 폴더에 들어가서
cd photo_ac_graf
PHP를 시작하면
php -S 127.0.0.1:8080 -t ./public
이와 같이 Laravel의 초기 화면이 표시됩니다. 이것으로 Laravel의 구축이 완료됩니다. 여기에서 실제로 코드를 써 갑니다.
3. 데이터베이스에서 데이터 검색
프로젝트 바로 아래에 있는 .env 파일의 MySQL 부분을 다시 씁니다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード
무심으로 컨트롤러 등의 파일을 수작업으로 작성하고 있었습니다만, 잘 생각하면 커맨드로 작성할 수 있었으므로 커맨드로 작성해 갑니다.
라우팅
이번에는 API로 응답하고 싶으므로 routes 아래의 api.php에
api.php
Route::get('/logs', 'LogsController@index');
위의 한 줄을 추가합니다.
모델 만들기
php artisan make:model Log
이번은 우선 데이터 모두 돌려주면 좋을까라고 생각하고 있으므로, 모델 파일에는 특히 아무것도 쓰지 않습니다.
컨트롤러 작성
php artisan make:controller LogsController
컨트롤러에는 데이터를 취득하고 JSON에서 반환하는 설명을하고 싶으므로 아래와 같이 기술합니다.
LogsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Log;
class LogsController extends Controller
{
public function index(Request $request){
$logs = Log::all();
return response(array('result' => $logs));
}
}
동작 확인
이 상태에서 http://localhost:8080/api/logs에 액세스하면
{
"result": [
{
"id": 1,
"image_id": 2875969,
"download": 0,
"date": "2020-06-06"
},
{
"id": 2,
"image_id": 2875964,
"download": 0,
"date": "2020-06-06"
},
{
"id": 3,
"image_id": 2875028,
"download": 0,
"date": "2020-06-06"
},
{
"id": 4,
"image_id": 2875022,
"download": 0,
"date": "2020-06-06"
},
{
"id": 5,
"image_id": 2874964,
"download": 0,
"date": "2020-06-06"
},
.
.
.
略
이런 식으로 데이터를 얻을 수 있습니다.
가공해 돌려주는 편이 좋을까라고 생각하기도 했습니다만, 일단 어떤 형식으로 데이터가 필요한지는 그래프를 그리는 라이브러리 나름대로 생각이 들었으므로 이 상태에서의 반환으로 합니다.
아니... 이 라라벨의 폭속감 타마란군요....
자바와 비교하여 동작 확인도 다시로드하기 때문에 ... 그만둘 수 없습니다 ...
Reference
이 문제에 관하여(사진 AC의 다운로드 수를 그래프화하고 싶은 【API 서버 구축편】 ~1일 10행 코딩~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/itaya/items/b0a905b4629c3d8f7acd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)