Project/Laravel

3.HTTP CLIENT를 사용해서 CRUD 만들기

smartlittlepuppy 2022. 7. 19. 11:42
반응형

외부 API를 호출할때, 라라벨의 http client를 이용할 수 있다. 

1. 우선, ClientController를 만들어준다.

php artisan make:controller ClientController

 

2. json더미데이타( 외부API호출). 

https://jsonplaceholder.typicode.com/posts

 

3. ClientController.php

class ClientController extends Controller
{
    //Bring All datas
    public function getAllPost(){
        $response = Http::get('https://jsonplaceholder.typicode.com/posts');
        return $response->json(); 
    }

    //Get 1 data
    public function getPostById($id){
        $post = Http::get('https://jsonplaceholder.typicode.com/posts/'.$id);
        return $post->json();
    }

    //Post data
    public function addPost(){
        $post = Http::post('https://jsonplaceholder.typicode.com/posts/', [
            'userId' => 1,
            'title' => 'New Post title',
            'body' => 'New Post Description'
        ]);
        return $post->json(); 
    }

    //Update
    public function updatePost(){
        $response = Http::put('https://jsonplaceholder.typicode.com/posts/1', [
            'title' => 'Updated Title',
            'body' => 'Updated Description'
        ]);
        return $response->json();
    }

    //Delete
    public function deletePost($id){
        $response = Http::delete('https://jsonplaceholder.typicode.com/posts/'.$id);
        return $response->json();
    }
}

4. web.php 위에 것을 라우팅을 이용해서 불러오기

/posts
Route::get('/posts', [ClientController::class, 'getAllPost'])->name('posts.getAllPost'); 
/posts/1
Route::get('/posts/{id?}', [ClientController::class, 'getPostById'])->name('posts.getPostById');
Route::get('/add-post', [ClientController::class, 'addPost'])->name('posts.addpost'); 
Route::get('/update-post', [ClientController::class, 'updatePost'])->name('posts.update');
/delete-post/12
Route::get('/delete-post/{id?}', [ClientController::class, 'deletePost'])->name('posts.delete');

 

반응형

'Project > Laravel' 카테고리의 다른 글

5. 미드웨어, 세션  (0) 2022.07.19
4. Http requests and Html Form 작성  (0) 2022.07.19
2.라라벨 컴포넌트  (0) 2022.07.18
1.라라벨 설치 및 라우팅  (0) 2022.07.18
글 읽어오기  (0) 2022.07.15