REST: 8개의 글
지난번 포스팅을 통하여 API Server 를 만들기 위한 준비를 전부 하였다. 이제부터는 Serializer를 활용하여 데이터를 주고 받을 수 있는 페이지를 만들어 볼 것이다. Serializer 생성 # app이름/serializer.py 생성 from rest_framework import serializers # serializer import from .models import User # 선언한 모델 import class UserSerializer(serializers.ModelSerializer): class Meta: model = User # 모델 설정 fields = ('id', 'username', 'age', 'city') # 필드 설정 Serializer를 위해 app의 하위 폴..
지난 포스팅에서 Django + Nginx + Gunicorn 을 연동하였으니 이제는 장고의 Rest Framework 를 이용해 간단하게 CRUD 할 수 있는 API Server를 만들어 볼 것이다. 우선 장고의 Rest Framework 에 대해 알아보자. django-rest-framework 공식 Documentation -> www.django-rest-framework.org Django REST framework Django REST Framwork (DRF) DRF란 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리(프레임워크)이다. DRF 사용 이유 웹 브라우저 API는 범용성이 큼, 개발을 쉽게 만들어 줌 ORM & non-ORM 에 대..
| Spring REST API Bad Request 처리 및 응답하기 이번 시간에는 서버에서 Bad Request 응답시, 응답 메세지에 Error 정보를 담아서 보내는 법을 알아보겠습니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | +---common | | | | TestDescription.java | | | | ErrorsSerializer.java | | | | | | | \---events | | | Event.java | | ..
| Spring REST API Bad Request 처리 이번 시간은 지난 시간에 이어서 HTTP 요청에 대해 잘못된 입력값이 보내진 경우, 어떻게 처리를 할 것 인지에 대해 알아보겠습니다. 한 경우는 입력값이 없는 상태, 또 하나는 비즈니스 로직에 위배되는 값이 보내왔을 때입니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | +---common | | | | TestDescription.java | | | | | | | \---events..
| Spring REST API 입력값 제한하기 및 Bad Request 처리 REST API를 설계할 시 Client 측에서 잘못된 데이터를 요청하거나 전송할 시 그것을 처리하는 로직을 만들어야 합니다. 여기서는 DTO(Data Transfer Object)와 스프링 부트에서 제공하는 설정 정보를 이용해 손쉽게 해당 로직을 적용할 것입니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | \---events | | | Event.java | |..
| Spring REST API 테스트 클래스 생성 및 201 응답 받기 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | \---events | | | Event.java | | | EventController.java | | | EventRepository.java | | | EventStatus.java | | | | | \---resources | | | application.properties | | | | | +---static | | ..
| 스프링 REST API 프로젝트 설정 인텔리제이에서 스프링 REST API를 시작하기 위해서는 다음 링크를 참고하여 인텔리제이에서 스프링 부트 프로젝트 설정을 완료해야 합니다. [Spring Framework/Spring boot2] - [Spring Boot #1] 인텔리제이(IntelliJ)로 스프링 부트 프로젝트 시작하기 | 스프링 REST API 프로젝트 구조 프로젝트 구조 \---src +---main | +---java | | \---com | | \---example | | \---springrestapi | | SpringRestApiApplication.java | | | \---resources | | application.properties | | | +---static | \--..
Representational State Transfer의 약자로, 로이 필딩(HTTP 프로토콜 주요 저자)이 제창했다. 1. REST 아키텍처의 조건 클라이언트/서버 : 클라이언트의 요청과 서버의 응답 기반 상태 없음 : 클라이언트의 상태(다른 URL에 있다던지)와 관계없이 요청으로만 응답 캐시 : 클라이언트는 서버의 응답을 캐시한다. 같은 요청마다 계속 다운로드받을 수는 없으므로.. 네트워크 비용 절감 계층화 시스템 : 서버는 다양한 형태의 중간 계층을 이용해서 확장할 수 있다. 클라이언트는 서버의 계층에 무관하게 통신할 수 있다. Code on Demand : 리소스를 다룰 수 있는 코드 전송(JS 등) 인터페이스 일관성 : 시스템 구조를 단순화시키고 작은 단위로 분리해서 독립적으로 개선하고 확장할..