REST

대표 국가 양도

REST는 대표 국가 양도.

대표 국가 양도?

네트워크로 연결된 애플리케이션을 설계하기 위한 아키텍처 스타일입니다. 거의 모든 경우에 이는 상태 비저장, 클라이언트-서버, 캐시 가능한 통신 프로토콜에 의존합니다. HTTP 규약. REST의 기본 아이디어는 모든 서버 측 리소스를 정의된 작업 집합을 통해 생성, 읽기, 업데이트 또는 삭제할 수 있는 개체로 처리하는 것입니다. 이 개념은 HTTP에서 지원하는 표준 작업인 POST, GET, PUT 및 DELETE와 밀접하게 일치합니다.

대표 상태 이전이라고 불리는 이유

용어 대표 국가 양도 특별한 이유로 선택되었습니다:

  • 대표성 네트워크를 통해 전송되는 리소스 표현(서버에서 요청한 문서 또는 개체)을 말합니다. 클라이언트는 다음과 같은 형식으로 이러한 표현을 쉽게 처리할 수 있습니다. XML, JSON.
  • 국가 이전 이는 모든 클라이언트와 서버 상호 작용이 상태를 전송한다는 것을 의미합니다. 클라이언트가 리소스를 요청하면 서버의 응답은 본질적으로 해당 리소스의 상태를 클라이언트에 전송하는 것입니다. 이 상태 전송을 통해 RESTful 애플리케이션은 상태 비저장이 가능합니다. 즉, 클라이언트에서 서버로의 각 요청에는 요청을 이해하고 완료하는 데 필요한 모든 정보가 포함되어야 합니다. 서버는 서버 측의 클라이언트 세션에 대한 상태를 저장하지 않습니다.

REST의 원리

REST는 단순성과 성능을 정의하는 몇 가지 주요 원칙을 기반으로 구축되었습니다.

  1. 무국적자: 클라이언트에서 서버로의 각 요청에는 요청을 이해하고 완료하는 데 필요한 모든 정보가 포함되어야 합니다. 서버에는 세션 상태가 없습니다. 이는 전적으로 클라이언트 측에 보관됩니다.
  2. 클라이언트 서버: 통일된 인터페이스는 클라이언트를 서버와 분리합니다. 이러한 관심사 분리는 클라이언트 측 논리와 서버 측 데이터 스토리지의 독립적인 발전을 지원하여 여러 플랫폼에 걸쳐 클라이언트 인터페이스의 이식성을 향상시킵니다.
  3. 캐시 가능: 응답은 클라이언트가 추가 요청에 대한 응답으로 오래되거나 부적절한 데이터를 재사용하는 것을 방지하기 위해 캐시 가능 여부를 정의해야 합니다.
  4. 계층화된 시스템: 클라이언트는 일반적으로 최종 서버에 직접 연결되어 있는지 아니면 중개자에 연결되어 있는지 알 수 없습니다. 중간 서버는 로드 밸런싱을 활성화하고 공유 캐시를 제공하여 시스템 확장성을 향상시킬 수 있습니다.
  5. 균일한 인터페이스: REST의 이점을 얻으려면 애플리케이션이 통일된 인터페이스를 준수해야 합니다. 여기에는 일반적으로 일관된 방식으로 표준 HTTP 방법을 사용하고 리소스 지향 URL을 따르는 것이 포함됩니다.

PHP 예

PHP에서 RESTful API를 생성하려면 HTTP 요청(GET, POST, PUT, DELETE)을 처리하고 JSON 또는 XML과 같은 형식의 데이터로 응답해야 합니다. 다음은 작업 목록을 관리하는 PHP의 RESTful API에 대한 간단한 예입니다. 이 예에서는 단순화를 위해 GET 및 POST 요청을 처리하는 방법을 보여줍니다.

PHP 예에서는 두 개의 엔드포인트를 생성하는 방법을 보여줍니다. 하나는 작업 목록을 검색하기 위한 것입니다(GET /tasks) 및 새 작업을 추가하기 위한 또 다른 항목(POST /tasks).

index.php – 진입점

<?php
// Define a simple array of tasks as our "database"
$tasks = [
    ['id' => 1, 'title' => 'Buy groceries', 'completed' => false],
    ['id' => 2, 'title' => 'Finish homework', 'completed' => false]
];

// Get the request method
$requestMethod = $_SERVER['REQUEST_METHOD'];

// Simple router
switch ($requestMethod) {
    case 'GET':
        getTasks();
        break;
    case 'POST':
        addTask();
        break;
    default:
        // Handle other HTTP methods or return an error
        header('HTTP/1.1 405 Method Not Allowed');
        break;
}

function getTasks() {
    global $tasks;
    header('Content-Type: application/json');
    echo json_encode($tasks);
}

function addTask() {
    global $tasks;
    $input = json_decode(file_get_contents('php://input'), true);
    if (!isset($input['title']) || !isset($input['completed'])) {
        header('HTTP/1.1 400 Bad Request');
        echo json_encode(['message' => 'Missing title or completed status']);
        return;
    }

    $newTask = [
        'id' => end($tasks)['id'] + 1,
        'title' => $input['title'],
        'completed' => $input['completed']
    ];

    $tasks[] = $newTask;
    header('Content-Type: application/json');
    echo json_encode($newTask);
}

?>

이용방법

  • 이 스크립트는 간단한 API 엔드포인트 역할을 합니다. HTTP 요청 방법에 따라 작업 목록(GET) 또는 목록에 새 작업을 추가합니다(POST).
  • 럭셔리 GET 요청하면 단순히 다음을 출력합니다. $tasks JSON 형식의 배열입니다.
  • 럭셔리 POST 요청을 받으면 요청 본문에서 JSON 페이로드를 읽습니다(다음을 포함한다고 가정). titlecompleted 상태), 새 작업을 $tasks 배열을 생성하고 새 작업을 JSON으로 반환합니다.
  • 이 예에서는 PHP 전역 배열을 모의 데이터베이스로 사용합니다. 실제 애플리케이션에서는 데이터베이스와 상호 작용하여 작업을 저장하고 검색할 가능성이 높습니다.

API 테스트

Postman 또는 cURL과 같은 도구를 사용하여 이 API를 테스트할 수 있습니다. 예를 들어, 새 작업을 추가하려면 다음을 수행하세요.

curl -X POST -H "Content-Type: application/json" -d '{"title":"Learn REST","completed":false}' http://localhost/index.php

그리고 작업 목록을 얻으려면:

curl -X GET http://localhost/index.php

이것은 PHP의 RESTful API 개념을 설명하기 위한 매우 기본적인 예입니다. 실제 시나리오에서는 보다 강력한 요청 처리, 오류 관리, 인증 및 입력 유효성 검사와 같은 보안 고려 사항이 필요합니다.

  • 약어: REST
맨 위로 가기 버튼
닫기

애드블록 감지됨

Martech Zone 은(는) 광고 수익, 제휴 링크 및 후원을 통해 사이트에서 수익을 창출하기 때문에 이 콘텐츠를 무료로 제공할 수 있습니다. 사이트를 볼 때 광고 차단기를 제거해 주시면 감사하겠습니다.