Restful-API란?

고성욱·2023년 3월 17일
1

개발 CS

목록 보기
6/8

REST(Representational State Transfer)는 인터넷에서 자원을 정의하고 자원에 대한 주소를 지정하는 방법론입니다. RESTful API는 클라이언트와 서버간의 통신 방식 중 하나로, REST를 기반으로 설계된 API를 의미합니다.

Restful-api의 장점

  • HTTP 프로토콜의 표준을 사용하므로, 다양한 클라이언트와 서버가 호환 가능합니다.
  • URL과 HTTP 메서드를 통해 직관적인 API 설계가 가능합니다.
  • REST API를 이용하면 데이터가 JSON, XML과 같은 일반적인 포맷으로 표현되어 플랫폼 확장성이 좋습니다.
  • 캐싱 처리가 용이하여 성능 향상에 기여합니다.

Restful-api의 단점

  • 표준이 존재하지만, 구현 방법에 대한 명확한 규칙이 없어 일관성 유지가 어렵습니다.
  • 설계 시 자원에 대한 표현이나 행동에 대한 정의가 명확하지 않으면 혼란이 있을 수 있습니다.
  • HTTP 프로토콜의 제약사항을 지켜야 하므로, 기능적인 제약이 있을 수 있습니다.

RESTful API는 현재 대부분의 웹 서비스에서 사용되고 있으며, 클라이언트와 서버간의 유연한 통신 방식으로 인해 인기를 얻고 있습니다.

안드로이드에서 RESTful API를 사용하려면, 먼저 HTTP 통신을 위한 라이브러리를 추가해야 합니다. 대표적으로는 OkHttp나 Retrofit이 있습니다.

RESTful API는 HTTP 프로토콜을 기반으로 한 API로, 주소와 HTTP 메서드를 이용하여 데이터의 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)를 수행합니다.

  • Create: POST 메서드를 사용하여 새로운 데이터를 생성합니다. 데이터는 요청 본문에 담겨 전송됩니다.

  • Read: GET 메서드를 사용하여 데이터를 조회합니다. 데이터는 요청 주소에 포함될 수 있으며, 요청 본문에 데이터를 담아 보내는 경우는 거의 없습니다.

  • Update: PUT 또는 PATCH 메서드를 사용하여 데이터를 수정합니다. PUT은 전체 데이터를 교체하는 경우에, PATCH는 일부 데이터만 수정하는 경우에 사용됩니다. 데이터는 요청 본문에 담겨 전송됩니다.

  • Delete: DELETE 메서드를 사용하여 데이터를 삭제합니다. 삭제할 데이터의 식별자는 요청 주소에 포함됩니다.

  • Create: POST /users - 새로운 사용자 정보를 생성

  • Read: GET /users/{id} - 특정 사용자 정보를 조회

  • Update: PUT /users/{id} - 특정 사용자 정보를 수정, 전체 정보를 교체하는 경우에 사용

  • Update: PATCH /users/{id} - 특정 사용자 정보를 수정, 일부 정보만 수정하는 경우에 사용

  • Delete: DELETE /users/{id} - 특정 사용자 정보를 삭제

이렇게 CRUD 기능을 이용하여 RESTful API를 설계하면, 클라이언트와 서버 간의 통신이 효율적이고 일관성 있게 이루어질 수 있습니다.

안드로이드에서 Restful-API를 자주사용하는 방법

(Retrofit을 사용)

  1. build.gradle 파일에 Retrofit 라이브러리를 추가합니다.
dependencies {
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
}
  1. Retrofit 인스턴스를 생성합니다.
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("<https://example.com/>") // API 서버 주소
    .addConverterFactory(GsonConverterFactory.create()) // JSON 파싱을 위한 컨버터 추가
    .build();
  1. API 인터페이스를 정의합니다.
public interface ApiService {
    @GET("users/{id}")
    Call<User> getUser(@Path("id") int userId);
}
  1. API 인터페이스를 이용해 API 요청을 보냅니다.
ApiService apiService = retrofit.create(ApiService.class);
Call<User> call = apiService.getUser(1);
call.enqueue(new Callback<User>() {
    @Override
    public void onResponse(Call<User> call, Response<User> response) {
        if (response.isSuccessful()) {
            User user = response.body();
            // 요청 성공 처리
        } else {
            // 요청 실패 처리
        }
    }

    @Override
    public void onFailure(Call<User> call, Throwable t) {
        // 통신 실패 처리
    }
});

이렇게 Retrofit을 이용해 RESTful API를 사용할 수 있습니다.

파이썬에서 Restful-API 사용하는 방법 (request 사용)

import requests

# GET 요청 보내기
response = requests.get('<https://jsonplaceholder.typicode.com/todos/1>')

# 응답 데이터 출력하기
print(response.json())

# POST 요청 보내기
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post('<https://jsonplaceholder.typicode.com/posts>', data=data)

# 응답 데이터 출력하기
print(response.json())

requests 라이브러리를 이용하면 간단하게 GET 요청과 POST 요청을 보낼 수 있습니다. 보내고 싶은 URL을 지정하고, 필요한 데이터를 함께 보내면 됩니다. 요청에 대한 응답은 response 객체에 저장됩니다. 이 객체에서 응답 데이터를 추출할 수 있습니다.

물론, requests 라이브러리 외에도 다양한 라이브러리를 사용할 수 있습니다. 예를 들어 Flask나 Django 같은 웹 프레임워크에서는 RESTful API를 쉽게 구현할 수 있도록 지원하는 기능들이 있습니다.

profile
안드로이드, 파이썬 개발자

0개의 댓글