codeigniter에서 RESTful 웹 서비스를 만드는 법 > PHP프레임워크

PHP프레임워크

codeigniter에서 RESTful 웹 서비스를 만드는 법 정보

코드이그나이터 codeigniter에서 RESTful 웹 서비스를 만드는 법

본문

http://programmerblog.net/create-restful-web-services-in-codeigniter/

 

codeigniter의 RESTful 웹 서비스

 

RESTful 웹 서비스는 컴퓨터 시스템 간의 통신 방법입니다. REST 서비스는 REST 아키텍처를 기반으로한다. 월드 와이드 웹에는 이미지, 비디오, 웹 페이지 및 기타 비즈니스 정보와 같은 리소스가 있습니다. 웹 서비스 클라이언트는 URI를 사용하여 이러한 자원을 요청합니다. 웹 서비스 요청에 대한 응답은 JSON, HTML, XML 또는 기타 형식 일 수 있습니다. 이전 튜토리얼에서 nusoap을 사용하여 PHP로 SOAP 웹 서비스에 대해 배웠다. 이 튜토리얼은 CodeIgniter에서 RESTful 웹 서비스를 작성하는 방법에 관한 것입니다. GET, POST, PUT 또는 DELETE와 같은 HTTP 메소드를 사용하여 리소스를 생성, 수정 또는 삭제할 수 있습니다.

 

CodeIgniter에서 편안한 웹 서비스를 만들려면 다음 작업을 수행해야합니다.

 

1. 서적 데이터베이스 및 테이블 만들기

2. 테이블에 샘플 데이터 추가

3. CodeIgniter 응용 프로그램 설치

4. 응용 프로그램에 대한 RESTful 라이브러리 파일, 모델 W API 컨트롤러를 작성하십시오.

5. ISBN을 통해 책 정보를 가져 오거나 모든 책 레코드를 가져 오기위한 API 메소드를 작성하십시오.

6. 새 책을 추가하고 책을 업데이트하며 책 레코드 메소드를 API에 삭제합니다.

7. Google 크롬 Postman 확장 기능이있는 테스트 API

 

Book 데이터베이스 및 테이블 만들기

 

먼저 CodeIgniter에서 RESTful 웹 서비스를 만들려면 PHP, MySQL을 설치해야합니다. PHP와 MySQL을 설치하지 않았다면 WAMP 또는 XAMPP 웹 사이트를 방문하여 PHP MySQL을 다운로드하여 설치하십시오. 설치 후 PhpMyAdmin을 엽니 다. SQL 탭을 클릭하고 아래 주어진 쿼리를 실행하십시오.

 

--
-- Database: `dbbookstore`
--
CREATE DATABASE IF NOT EXISTS dbbookstore DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

USE dbbookstore;

-- --------------------------------------------------------

--
-- Table structure for table "tbl_books"
--

CREATE TABLE tbl_books (
  id int(11) NOT NULL,
  name varchar(500) NOT NULL,
  price float(8,2) NOT NULL,
  author varchar(300) NOT NULL,
  category varchar(250) NOT NULL,
  language varchar(100) NOT NULL,
  ISBN varchar(40) NOT NULL,
  publish_date date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;

--
-- Dumping data for table "tbl_books"
--

INSERT INTO tbl_books (id, name, price, author, category, language, ISBN, publish_date) 
VALUES
(1, 'Red Hat Enterprise Linux 6 Administration', 50.00, 'Sander van', 'Computer Science', 'en', '984-1234-12341234', '2013-12-05'),
(2, 'Design Patterns: Elements of Reusable Object-Oriented Software ', 15.11, 'Ralph Johnson, John Vlissides, Grady Booch', 'Computer Science', 'en', '978-*** 개인정보보호를 위한 전화번호 노출방지 ***', '2016-03-01'),
(3, 'Machine Learning for Absolute Beginners\r\n', 10.36, 'Oliver Theobald', 'Computer Science', 'en', '123-58679-654', '2016-08-01'),
(4, 'Python Crash Course: A Hands-On, Project-Based Introduction to Programming', 21.58, ' Eric Matthes', 'Programming', 'en', '659-8546-324', '2015-11-30'),
(5, 'Data Structures and Algorithms in Java', 102.65, 'Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser', 'Computer Science', 'en', ' 978-1118777788', '2014-06-23'),
(6, 'Star Wars: Darth Vader Vol. 1: Vader', 26.54, 'Kieron Gillen', 'Comic Novels', 'en', '485-6582-658', '2015-09-16'),
(7, 'Star Wars Vol. 1: Skywalker Strikes', 16.23, 'Jason Aron', 'Novels', 'en', '159-7539-985', '2011-04-11'),
(8, 'Phonics for Kindergarten, Grade K ', 6.32, 'Carson-Dellosa Publishing ', 'Education', 'en', '412-6548-7854', '2016-08-10'),
(9, 'Astrophysics for People in a Hurry ', 9.95, 'Astrophysics for People in a Hurry ', 'Science', 'en', '654-71235-654', '2010-10-02'),
(10, 'Let''s Review Algebra I', 8.54, 'Gary Rubinstein (Author) ', 'Science', 'en', '978-1438009854', '2006-03-24');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_books`
--
ALTER TABLE tbl_books
  ADD PRIMARY KEY (id);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_books`
--
ALTER TABLE tbl_books
  MODIFY id int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=13

 

800591923_1547323093.8119.png

 

코드이그나이터 응용 프로그램 만들기

 

우리가 codeigniter에서 RESTful 웹 서비스를 만들어야하기 때문에; 그래서 최신 codeigniter 버전이 필요합니다. codeigniter 웹 사이트를 방문하여 최신 버전의 codeigniter를 다운로드하고 압축을 풉니 다. restful-services-in-codeigniter 폴더를 PHP 설치의 htdocs 또는 wwwroot 폴더에 만드십시오.

어플리케이션과 시스템 폴더를 포함하여 CodeIgniter 폴더의 내용을 복사하십시오. 응용 프로그램 폴더의 이름을 appx 및 system 폴더로 sysx로 바꿉니다.

index.php 파일을 열고 행 번호를 변경하십시오. 100 ~

$system_path = 'sysx';

 

및 117 번 라인까지

$application_folder = 'appx';

 

config 폴더에서 config.php 파일을 열고 26 번 라인으로 이동하여 base_url을 다음과 같이 변경하십시오.

$config['base_url'] = 'http://localhost';

 

38 번 라인에서 index_page를 다음으로 변경하십시오.

$config['index_page'] = '';

 

다음을

$config['uri_protocol'] = "AUTO"

 

아래와 같이 변경하세요.

$config['uri_protocol'] = "REQUEST_URI"

 

이제 프로젝트의 루트 폴더 (예 : restful-services-in-codeigniter)로 이동하여 .htaccess 파일을 만듭니다.
아래 코드를 파일에 추가하십시오.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

 

일반적으로 브라우저에서 CodeIgniter 컨트롤러 URL에 액세스 할 때는 http://localhost/projectname/index.php/welcome 형식이므로 URL에서 index.php를 제거하려면 위와 같이 설정이 변경됩니다.

appx/config 경로에서 database.php 파일을 열고 데이터베이스 설정을 변경하십시오. MySQL 설치에 따라 호스트 이름, 사용자 이름, 암호 및 데이터베이스 이름을 업데이트하십시오.

 

REST 컨트롤러 및 관련 파일 다운로드

 

Github CodeIgniter rest 서버 저장소를 방문하고 아래 설명 된대로 다음 파일을 다운로드하고 프로젝트 디렉토리에 복사하십시오. CodeIgniter에서 RESTful 웹 서비스를 생성하려면 이러한 파일을 프로젝트에 추가해야합니다. 라이브러리 열기 폴더에서 REST_controller.php 파일을 만들고 이 파일에서 코드를 추가하십시오. Format.php 파일을 만들고 이 링크에서 코드를 추가하십시오.

 

HTTP 메소드

 

다음 HTTP 메소드를 사용하려고합니다.

GET

가져 오기 메소드는 리소스에 대한 데이터를 가져 오는 데 사용됩니다. CodeIgniter에서 $this->get() 메소드는 URL 또는 쿼리 문자열에서 매개 변수를 가져 오는 데 사용됩니다.

POST

POST 메서드는 새 리소스를 만드는 데 사용됩니다. CI의 $this->post() 메소드는 클라이언트가 보낸 값에 액세스하는 데 사용됩니다.

PUT

기존 리소스를 업데이트하려면 PUT 메서드가 사용됩니다. CodeIgniter의 $this->put() 메소드는 값에 액세스하는 데 사용됩니다.

DELETE

자원을 삭제하려면이 메소드가 사용됩니다. CodeIgniter에서 $this->delete() 메소드가 사용되었습니다.

 

Book 모델 만들기

 

codeigniter의 RESTful 웹 서비스에 대한이 자습서에서는 책 모델을 만들어야한다. 모델 열기 폴더를 열고 Book_model.php 파일을 추가하십시오. 이 파일에 다음 코드를 추가하십시오.

 

<?php
  class Book_model extends CI_Model {
       
      public function __construct(){
          
        $this->load->database();
        
      }
      
      //API call - get a book record by isbn
      public function getbookbyisbn($isbn){  

           $this->db->select('id, name, price, author, category, language, ISBN, publish_date');

           $this->db->from('tbl_books');

           $this->db->where('isbn',$isbn);

           $query = $this->db->get();
           
           if($query->num_rows() == 1)
           {

               return $query->result_array();

           }
           else
           {

             return 0;

          }

      }

    //API call - get all books record
    public function getallbooks(){   

        $this->db->select('id, name, price, author, category, language, ISBN, publish_date');

        $this->db->from('tbl_books');

        $this->db->order_by("id", "desc"); 

        $query = $this->db->get();

        if($query->num_rows() > 0){

          return $query->result_array();

        }else{

          return 0;

        }

    }
   
   //API call - delete a book record
    public function delete($id){

       $this->db->where('id', $id);

       if($this->db->delete('tbl_books')){

          return true;

        }else{

          return false;

        }

   }
   
   //API call - add new book record
    public function add($data){

        if($this->db->insert('tbl_books', $data)){

           return true;

        }else{

           return false;

        }

    }
    
    //API call - update a book record
    public function update($id, $data){

       $this->db->where('id', $id);

       if($this->db->update('tbl_books', $data)){

          return true;

        }else{

          return false;

        }

    }

}

 

이 책 모델 클래스는 CI_model 클래스에서 확장되었습니다. 생성자에서 데이터베이스 클래스가 로드됩니다.

$this->load->database();

 

codeigniter에서 편안한 웹 서비스를위한 ISBN 방법으로 책 가져 오기


getbookbyisbn 메소드가 정의됩니다. 이 메서드는 ISBN을 기반으로 책 레코드를 가져옵니다. $this->db->get() 메소드는 결과 객체를 반환합니다. num_rows에 result의 행이 포함됩니다. 레코드가 있으면 결과 배열이 반환됩니다.

codeigniter에서 편안한 웹 서비스를위한 모든 책 가져 오기 메소드

데이터베이스에서 모든 책을 가져 오려면 getallbooks 메소드가 정의됩니다. 이 메서드는 모든 장부 레코드를 선택하여 반환합니다.


codeigniter에서 편안한 웹 서비스를위한 book 메소드 삭제

삭제 방법은 서적 레코드를 삭제하기 위해 정의됩니다. 그것은 이드를 받아 들인다. Id는 $ this-> db->로 전달됩니다. $ this->db->delete 메쏘드는 tbl_book과 함께 호출됩니다. 쿼리가 성공적으로 실행되면 레코드가 삭제되고 true가 반환됩니다.


codeigniter에서 편안한 웹 서비스를위한 book 메소드 추가하기

데이터베이스에 새 레코드를 추가하려면 Add 메서드가 만들어집니다. Add 메소드는 tbl_books 테이블의 모든 열에 대한 값을 포함하는 $data 배열을 허용합니다. $data 배열과 테이블 이름 tbl_books는 $this->db->insert 메소드에 전달됩니다. 삽입 성공시 true가 리턴됩니다.


codeigniter에서 편안한 웹 서비스를위한 book 메소드 업데이트

기존 서적 레코드를 갱신하려면 갱신 메소드가 정의됩니다. 이 메서드는 레코드의 id와 업데이트 할 값의 데이터 배열을 받아들입니다. $this->db->where 절에 id가 전달 된 다음 $this->db->update 데이터와 테이블 이름이 전달됩니다. 데이터가 성공적으로 업데이트되고 true가 반환되고 그렇지 않으면 false가 반환됩니다.

 

API 컨트롤러 추가하기

 

클라이언트가 API 메소드에 액세스 할 수 있도록 API가 필요합니다. 컨트롤러 폴더를 엽니 다. 파일 API.php를 추가하십시오. 아래 코드를이 파일에 추가하십시오.

 

<?php

require(APPPATH.'/libraries/REST_Controller.php');
 
class Api extends REST_Controller{
    
    public function __construct()
    {
        parent::__construct();

        $this->load->model('book_model');
    }

    //API - client sends isbn and on valid isbn book information is sent back
    function bookByIsbn_get(){

        $isbn  = $this->get('isbn');
        
        if(!$isbn){

            $this->response("No ISBN specified", 400);

            exit;
        }

        $result = $this->book_model->getbookbyisbn( $isbn );

        if($result){

            $this->response($result, 200); 

            exit;
        } 
        else{

             $this->response("Invalid ISBN", 404);

            exit;
        }
    } 

    //API -  Fetch All books
    function books_get(){

        $result = $this->book_model->getallbooks();

        if($result){

            $this->response($result, 200); 

        } 

        else{

            $this->response("No record found", 404);

        }
    }
     
    //API - create a new book item in database.
    function addBook_post(){

         $name      = $this->post('name');

         $price     = $this->post('price');

         $author    = $this->post('author');

         $category  = $this->post('category');

         $language  = $this->post('language');

         $isbn      = $this->post('isbn');

         $pub_date  = $this->post('publish_date');
        
         if(!$name || !$price || !$author || !$price || !$isbn || !$category){

                $this->response("Enter complete book information to save", 400);

         }else{

            $result = $this->book_model->add(array("name"=>$name, "price"=>$price, "author"=>$author, "category"=>$category, "language"=>$language, "isbn"=>$isbn, "publish_date"=>$pub_date));

            if($result === 0){

                $this->response("Book information coild not be saved. Try again.", 404);

            }else{

                $this->response("success", 200);  
           
            }

        }

    }

    
    //API - update a book 
    function updateBook_put(){
         
         $name      = $this->put('name');

         $price     = $this->put('price');

         $author    = $this->put('author');

         $category  = $this->put('category');

         $language  = $this->put('language');

         $isbn      = $this->put('isbn');

         $pub_date  = $this->put('publish_date');

         $id        = $this->put('id');
         
         if(!$name || !$price || !$author || !$price || !$isbn || !$category){

                $this->response("Enter complete book information to save", 400);

         }else{
            $result = $this->book_model->update($id, array("name"=>$name, "price"=>$price, "author"=>$author, "category"=>$category, "language"=>$language, "isbn"=>$isbn, "publish_date"=>$pub_date));

            if($result === 0){

                $this->response("Book information coild not be saved. Try again.", 404);

            }else{

                $this->response("success", 200);  

            }

        }

    }

    //API - delete a book 
    function deleteBook_delete()
    {

        $id  = $this->delete('id');

        if(!$id){

            $this->response("Parameter missing", 404);

        }
         
        if($this->book_model->delete($id))
        {

            $this->response("Success", 200);

        } 
        else
        {

            $this->response("Failed", 400);

        }

    }


}

위의 코드에서 REST_Controller.php 파일은 libraries 폴더에 포함되어 있습니다.

require(APPPATH.'/libraries/REST_Controller.php');

 

API 클래스가 추가되었으며 REST_Controller 클래스에서 확장되었습니다. 클래스 생성자에서 부모 생성자가 호출되고 책 모델은 $this->load_model 메소드를 사용하여 로드됩니다.

 

class Api extends REST_Controller{ 
      public function __construct() { 
          parent::__construct(); 
          $this->load->model('book_model'); 
      }
  
    ....
 
 }

 

get, post, put 및 delete를 사용하여 메소드 정의

위의 코드에서 HTTP 메소드 get, post, put 및 delete는 각 메소드 이름과 함께 사용됩니다. 그러나 이러한 메소드가 클라이언트 get, post, put 및 delete에서 호출되면 사용되지 않습니다.

데이터베이스에서 레코드를 가져 오려면 _get이 함수 이름과 함께 추가되지만 새 리소스를 만들거나 _post 또는 _put을 업데이트하려면 delete 메서드와 함께 _delete가 사용됩니다.


ISBN에 의해 도서를 얻을 컨트롤러 방법

ISBN으로 책 정보를 얻으려면 bookByISBN 함수가 만들어집니다. 함수 이름이 추가 된 _get을 볼 수 있습니다.
$ this-> get은 URL 또는 쿼리 문자열에서 변수 값을 가져 오는 데 사용됩니다. 클라이언트가 ISBN을 지정하지 않은 경우 클라이언트에 400의 응답 코드가 전송되고 그렇지 않으면이 ISBN이 book_model의 getbookbyisbn 메소드에 전달됩니다.

결과는 상태 코드 200 인 $this->response 메소드를 사용하여 클라이언트로 리턴됩니다. 그렇지 않으면 404 상태 코드가 메시지 유효하지 않은 ISBN과 함께 리턴됩니다.

 

function bookByIsbn_get(){

     $isbn = $this->get('isbn'); 

     if(!$isbn){ 

       $this->response("No ISBN specified", 400); 

       exit; 

      } 
      
      $result = $this->book_model->getbookbyisbn( $isbn ); 

      if($result){ 

           $this->response($result, 200); 

           exit;

      }else{ 

           $this->response("Invalid ISBN", 404); 

           exit; 
        } 

      }

 

모든 Book 정보 얻기

모든 책 정보를 가져 오려면 books_get 메소드가 작성됩니다. Model의 getallbooks 메소드는 데이터베이스의 모든 책에 대한 정보를 리턴합니다. 성공 결과가 상태 코드 200과 함께 반환되면, 그렇지 않으면 상태 코드 404와 함께 오류가 반환됩니다.

 

//API - Fetch All books 

function books_get(){ 

   $result = $this->book_model->getallbooks(); 

   if($result){ 

      $this->response($result, 200); 

   } else{ 

      $this->response("No record found", 404); 

   }

}

 

API 메소드를 사용하여 새 책 추가

새 책을 만들려면 addBook_post 메서드가 HTTP POST 메서드로 만들어집니다. 클라이언트는 웹 서비스 클라이언트의 post 메소드를 사용하여 책 정보를 전달합니다. $ this-> post 값을 사용하여 변수에 할당됩니다. 값 중 하나라도 응답 코드가 누락 된 경우 400 또는 잘못된 요청이 클라이언트로 메시지와 함께 되돌려 보내집니다.

데이터 배열은 모델의 add 메소드에게 건네집니다. 데이터가 데이터베이스에 저장되고 응답 코드 200이 성공 메시지와 함께 사용자에게 다시 전송되면 기타 400 개의 요청 코드가 사용자에게 다시 전송됩니다.

 

//API - create a new book item in database.

function addBook_post(){ 
    
    $name = $this->post('name'); 
    
    $price = $this->post('price'); 
    
    $author = $this->post('author');       
    
    $category = $this->post('category'); 
    
    $language = $this->post('language'); 
    
    $isbn = $this->post('isbn'); 

    $pub_date = $this->post('publish_date'); 

    if(!$name || !$price || !$author || !$price || !$isbn || !$category){ 

       $this->response("Enter complete book information to save", 400); 

     }else{ 
    
        $result = $this->book_model->add(array("name"=>$name, "price"=>$price, "author"=>$author, "category"=>$category, "language"=>$language, "isbn"=>$isbn, "publish_date"=>$pub_date)); 

       if($result === 0){ 

            $this->response("Book information could not be saved. Try again.", 404); 

       }else{ 
            
            $this->response("success", 200); 

       }

    }
 
}

 

Book 업데이트 메소드

도서 정보를 갱신하기 위해서는 updatebook_put 메소드가 생성된다. 자원을 갱신하는 HTTP 메소드를 넣으십시오. 모든 필수 값은 $this->put 메소드를 사용하여 변수에 할당됩니다.

필수 매개 변수 중 하나가 클라이언트에 의해 보내지지 않으면 메시지와 함께 응답 코드 400이 클라이언트로 전송됩니다. 그렇지 않으면 book_model의 update 메소드가 호출되고 book 배열과 함께 데이터 배열이 전달됩니다. 성공적으로 업데이트되면 상태 코드 200의 메시지가 사용자에게 전송되고 그렇지 않으면 404 응답이 다시 전송됩니다.

 

//API - update a book information

function updateBook_put(){ 

    $name     = $this->put('name'); 

    $price    = $this->put('price'); 

    $author   = $this->put('author'); 

    $category = $this->put('category'); 

    $language = $this->put('language'); 

    $isbn     = $this->put('isbn'); 

    $pub_date = $this->put('publish_date'); 

    $id       = $this->put('id'); 

    if(!$id || !$name || !$price || !$author || !$price || !$isbn || !$category){ 

        $this->response("Enter complete book information to save", 400); 

    }else{ 

        $result = $this->book_model->update($id, array("name"=>$name, "price"=>$price, "author"=>$author, "category"=>$category, "language"=>$language, "isbn"=>$isbn, "publish_date"=>$pub_date)); 
 
        if($result === 0){ 

             $this->response("Failed to save Book information. Try again.", 404); 

        }else{
 
             $this->response("success", 200); 
        }
 
     } 
 
 }

 Book 삭제 메소드

API 메소드를 사용하여 서적 레코드를 삭제하려면 deleteBook_delete () 메소드가 작성됩니다. 메서드에서 $ id는 $this->delete() 메서드를 사용하여 할당됩니다. $ id가 없으면 404 응답이 클라이언트로 전송됩니다. 그렇지 않으면 $ book_model의 delete 메소드가 호출됩니다. 성공 상태 코드 200에서는 그렇지 않으면 상태 코드 400이 리턴됩니다.

 

//API - delete a book 

  function deleteBook_delete() { 

          $id = $this->delete('id'); 
 
          if(!$id){ 

              $this->response("Parameter missing", 400); 

          } 
         
          if($this->book_model->delete($id)) { 

              $this->response("Success", 200); 

          } else { 
           
              $this->response("Failed", 404); 
          }
   }

Postman Chrome 확장 프로그램을 사용하여 웹 서비스 테스트하기

웹 서비스는 여러 클라이언트에서 사용할 수 있습니다. 클라이언트는 PHP, ASP.Net 응용 프로그램 또는 모바일 응용 프로그램이 될 수 있습니다. codeigniter에서 편안한 웹 서비스를 만드는이 자습서에서는 Google Chrome의 Postman 확장 기능을 사용할 것입니다.

Chrome 브라우저를 엽니 다. 상단 메뉴에서 창 메뉴를 클릭하고 확장을 클릭하십시오. 아래쪽의 추가 확장 기능 얻기 링크를 클릭하십시오. 왼쪽의 검색 창에 우편 배달원을 입력하고 검색을 클릭하십시오. 사용 가능한 확장 프로그램에서 검색 결과는 우편 배달부를 클릭하고 Chrome에 추가를 클릭합니다. 설치 후 Launch 버튼을 클릭하십시오. 웹 서비스를 테스트 해 봅시다.
우편 배달기 Google 크롬 확장 프로그램

이 확장에서 사용자는 HTTP 메소드, 요청 URL 입력 또는 매개 변수 추가를 선택할 수 있습니다.

 

800591923_1547324718.9949.png

 

HTTP 메소드 선택하기

GET 매개 변수 값으로 드롭 다운을 클릭하면 다른 HTTP 메소드도 선택할 수 있습니다.

 

800591923_1547324770.8641.png

 

주소 표시 줄 URL 및 매개 변수

아래 이미지에는 매개 변수를 추가하는 버튼이있는 웹 서비스 URL을 추가하는 주소 표시 줄이 있습니다. 보내기 버튼을 클릭하면 웹 서비스 요청이 서버로 전송됩니다.

 

800591923_1547324818.1184.png

 

ISBN 방법으로 책을 테스트하기

POSTMAN를 열고 주소 표시 줄에 다음 URL을 추가하십시오. 여기서 포트 8888은 MAC 시스템에서 MAMP에 의해 사용됩니다. WAMP 또는 MAMP 설치에 포트가없는 경우 포트를 사용하지 마십시오. 메소드에서 GET을 선택하십시오.

 

http://localhost:8888/restful-services-in-codeigniter/api/bookbyIsbn

 

다음으로 ISBN이 매개 변수로 추가됩니다. Params 버튼을 클릭하십시오. 키 텍스트 상자에 isbn을 입력하고 값 텍스트 상자에 978-0071492478을 입력하십시오.

보내기 버튼을 클릭하면 성공한 결과가 다시 브라우저로 전송됩니다.

 

800591923_1547324921.0562.png

 

테스팅 400 BAD REQUEST

웹 서비스를 호출하는 동안 매개 변수를 지정하지 않으면 잘못된 요청이 반환됩니다.

 

800591923_1547325030.1357.png

 

테스팅 404 not found request

 

유효하지 않은 ISBN이 입력되면 404 Not Found 상태 코드가 메시지와 함께 반환됩니다.

 

800591923_1547325104.5604.png

 

테스트 모든 도서 얻기 방법

모든 장부 레코드를 가져 오려면 book 메서드를 호출해야합니다.이 메서드 호출과 함께 _get을 사용하고 있지 않음을 알 수 있습니다. 우편 배달부에서 주소 표시 줄에 아래 URL을 추가하십시오.

 

800591923_1547325144.9026.png

 

매개 변수가 없으므로; 그래서 보내기 버튼을 클릭하십시오. 요청이 서버로 보내집니다. 응답으로 모든 서적 레코드가 JSON 객체로 반환됩니다.

 

800591923_1547325192.0476.png

 

위 그림에서 볼 수 있듯이 결과는 웹 서비스에서 반환됩니다.


API 메소드를 사용하여 새 책 추가 테스트

새로운 도서 메소드 추가 테스트를 위해 먼저 데이터베이스에있는 기존 레코드를 봅니다. 현재 데이터베이스에는 10 개의 레코드가 있습니다.

 

800591923_1547325242.2114.png

 

이제 Postman에서 HTTP 메소드의 POST 드롭 다운을 선택합니다. 검색 주소창에 다음 URL을 추가하십시오.

http://localhost:8888/restful-services-in-codeigniter/api/addbook

 

800591923_1547325298.2742.png

 

POST 메서드를 사용하여 책을 추가하면 매개 변수가 본문의 일부로 전송됩니다. 주소 표시 줄 아래의 본문 탭을 클릭하고 x-www-form-urlencoded 라디오 버튼을 선택하십시오.

키와 값에 대한 텍스트 상자가 있습니다. 새 책의 모든 매개 변수를 추가하십시오. 키는 열의 이름이고 값은 저장할 데이터를 포함합니다. 이름=완전한 참조 ASP.NET MVC 등등 처럼 데이터를 추가 한 후 보내기 버튼을 클릭하십시오. 삽입이 성공하면 성공 메시지가 리턴됩니다.

 

800591923_1547325387.1559.png

 

아래에 새로 추가 된 id = 11의 레코드를 확인할 수 있습니다.

 

800591923_1547325426.642.png

 

업데이트 북 테스트 메소드

기존 book의 레코드를 업데이트하려면 updateBook 메소드는 PUT HTTP 메소드를 사용하여 호출됩니다. HTTP 메소드에서 PUT을 선택하여 주소 표시 줄에이 URL을 추가하십시오.

 

http://localhost:8888/restful-services-in-codeigniter/api/updatebook

 

. body 태그를 클릭하고 x-www-form-urlencoded 라디오 버튼을 선택하십시오. id = 1의 기존 서적 레코드를 봅니다.

 

800591923_1547325529.7446.png

 

Postman에서 body 태그 아래의 키 값 상자에 새 도서 레코드를 추가하십시오. 값이있는 ID 키 추가 1. 책 정보를 추가 한 후 보내기 버튼을 클릭하십시오. 성공 메시지와 업데이트 된 정보를 볼 수 있습니다.

 

800591923_1547325580.6447.png

 

아래에서 업데이트 된 기록을 볼 수 있습니다.

 

800591923_1547325670.3825.png

 

도서 메서드 삭제 테스트하기

API를 사용하여 데이터베이스에서 책을 삭제하려면 deleteBook 메소드가 사용됩니다. 우편 배달원을 열고에서 다음 URL을 추가하십시오.

 

http://localhost:8888/restful-services-in-codeigniter/api/deletebook

 

드롭 다운에서 삭제 방법을 선택하십시오.

id = 11 인 책을 데이터베이스에서 삭제하려고한다고 가정합니다. 따라서 키 값 상자에 id를 키로, 11을 값으로 추가하십시오. 보내기 버튼을 클릭하십시오. 책을 삭제하면 서버에서 성공 메시지가 반환됩니다.

 

800591923_1547325750.4397.png

 

개요

요약하면,이 튜토리얼에서는 CodeIgniter에서 편안한 웹 서비스를 만드는 방법을 배웠습니다. 그런 다음 Postman Chrome 확장 프로그램과 같은 클라이언트를 사용하여 웹 서비스를 호출하고 테스트하는 방법. 희망이 튜토리얼은 당신을 위해 도움이됩니다.

귀하의 의견과 의견을 남겨주세요. 트위터에서 우리를 팔로우하여 다가오는 기사 및 자습서를 최신 상태로 유지하십시오. 이 링크에서 튜토리얼의 소스 코드를 다운로드 할 수 있습니다.

GIT가 시스템에 설치되어 있으면 저장소를 복제 할 수 있습니다. 명령 줄에서 WAMP, MAMP 또는 XAMPP 디렉토리의 루트 디렉토리 (www 또는 wwwroot)로 이동하십시오.

다음 명령을 입력하십시오.

 

git clone *** 개인정보보호를 위한 이메일주소 노출방지 ***:programmer-blog/restful-services-in-codeigniter.git

 

시스템에 코드를 다운로드하십시오. 복제 또는 다운로드 링크를 클릭하십시오. 그런 다음 저장소 오른쪽에있는 Download Zip 링크를 클릭하십시오.

 

800591923_1547325834.9882.png

추천
0

댓글 0개

전체 289 |RSS
PHP프레임워크 내용 검색

회원로그인

진행중 포인트경매

  1. 참여1 회 시작24.04.25 20:23 종료24.05.02 20:23
  2. 참여80 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT