본문 바로가기
IT 프로그래밍 관련/API server ( Flask )

JSON 형식 메세지 처리 (POSTMAN설치)

by 지나는행인 2021. 4. 7.
728x90

앞서 이야기 했듯이 , 클라이언트와의 요청과 응답은 JSON형식으로 한다.

 

이번에는 이전에 hello world 를 화면에 출력하였지만, JSON 형식으로 출력을 해보겠다.

 

이 출력을 보면 JSON 형식을 이해 할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from flask import Flask     # flask import
 
app = Flask(__name__)      # flask 사용하기 위한 기본 코드
 
# get localhost:5000/
 
@app.route('/act', methods = ['GET'])     # http://localhost:5000/act  라는 URL로 설정. 
 
def act():                                # JSON 형식으로 함수 작성
    ret = {"count" : 2 , 
            "students" : [
                 {"name" : "홍길동""age" : 30 },
                 {"name" : "김나나""age" : 25 } 
           ]
    }
    return ret
 
if __name__ == "__main__":   # flask 마지막에 들어가는 기본 코드
    app.run()
cs

위와 같이 코드를 작성 후 실행 화면으로는,

* postman으로 실행한 화면

위와 같이 출력되는 것을 볼 수 있다 . 위는 파이썬의 딕셔너리 형태와 유사하다.

 

 

### postman은 실무에서 많이 쓰이는 플랫폼으로, 

      개발한 api를 테스트하는 용도이다.

 

www.postman.com/downloads/   공식홈페이지에서 다운로드 후 로그인 후 사용 가능하다.

 

기본적인 사용법은 위의 GET 이 표기되 있는 부분을 누르면 HTTP메소드를 고를 수 있고 , 

 

고른 후 옆에 URL 을 누르고 send를 누른다.

 

지금은 GET이라 body에 데이터를 넣지 않아도 되지만, POST같은 경우에는 데이터를 추가 하는 메소드이기 때문에

 

body 로 데이터 작업이 필요하다. body ..row .. json 파일로!

 

자세한 사용법은 , 설명서를 검색!

 

 

 

이번에는 클라이언트에게 JSON 형식의 데이터를 받아, 그것에 관하여 데이터를 다시 돌려주는 코드를 실행해 본다.

 

1. 두개의 숫자를 클라이언트에게 받는다. x, y

2. 받은 두 숫자를 더해서, 클라이언트에 돌려준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from flask import Flask, request              # request 는 데이터를 받을 수 있도록하는 라이브러리
#HTTP의 상태코드를 전송할 수 있는 라이브러리
from http import HTTPStatus
 
app = Flask(__name__)      # flask 사용하기 위한 기본 코드
 
# get localhost:5000/
 
@app.route('/add_two_nums', methods = ['POST'])  #POST 데이터를 추가.
def add_two_nums():   
    data = request.get_json()             #클라이언트로부터 json형식으로 데이터를 받는다.
    # data = { "x" : 345, "y" : 827 }     포스트맨에서 바디부분에 연결
 
    if 'x' not in data or 'y' not in data:
        return {'message' : '파라미터 오류'}, HTTPStatus.BAD_REQUEST  
 
    x = data['x']    # 파이썬 딕셔너리 형태에서 데이터 억세스 방법
    y = data['y']
 
    z = x + y
 
    ret = {'sum' : z}    # 딕셔너리 형태로 돌려준다.
    
    return ret, HTTPStatus.UNAUTHORIZED
 
if __name__ == "__main__":   # flask 마지막에 들어가는 기본 코드
    app.run()
cs

API 서버의 입장으로 , 클라이언트에게 데이터를 받아 돌려주기 때문에,

 

데이터를 받는 코드부터 돌려주는 코드까지 작성하였다.  중간에 if문은 받은 데이터에 x나,y 의 값이 없으면, 

 

두 수의 합을 계산할 수 없으므로, 오류 메시지로 리턴하기 위함이다.

 

 

위와 같이 포스트맨에서 x와 y의 데이터를 json 형식으로 Body 부분에 작성하여, 

 

api로 보냈고,   코드 진행대로 되돌려 받았다.

 

 

댓글