사진 AC의 다운로드 수를 그래프화하고 싶은 【API 서버 구축편】 ~1일 10행 코딩~

8295 단어 ComposerPHP라라벨

5일째



【기술 테마】



PHP로 API 구축

언어


  • PHP
  • JavaScript

  • 목표 아티팩트



    오늘은 마지막까지 데이터 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"
            },
    .
    .
    .
    
    

    이런 식으로 데이터를 얻을 수 있습니다.
    가공해 돌려주는 편이 좋을까라고 생각하기도 했습니다만, 일단 어떤 형식으로 데이터가 필요한지는 그래프를 그리는 라이브러리 나름대로 생각이 들었으므로 이 상태에서의 반환으로 합니다.

    아니... 이 라라벨의 폭속감 타마란군요....
    자바와 비교하여 동작 확인도 다시로드하기 때문에 ... 그만둘 수 없습니다 ...

    좋은 웹페이지 즐겨찾기