Flask로 RESTful API 빌드하기 - 파트 0: 시작하기

API를 둘러싼 신비로운 분위기가 있을 수 있으며 REST API도 예외는 아닙니다. 현재의 직위를 처음 시작했을 때, 그것이 무엇인지 전혀 몰랐지만 직접 구축했습니다(물론 내 팀과 함께). 이 기사를 통해 이 미스터리를 풀고 여러분도 미스터리를 만들 수 있다는 것을 보여주고 싶습니다!

기술 스택의 경우 Python 3.7 이상이 있습니다. 우리는 Flask 마이크로 프레임워크 위에 물건을 만들 것입니다. 테스트를 위해 cURL을 사용할 것입니다(Windows 사용자는 지금쯤 있어야 함). 프로덕션 서버로 실행되는 Linux 상자도 필요합니다. 사실 이것보다 더 많은 것이 있지만, 우리는 그것에 대해 이야기할 것입니다. 지금으로서는 이것으로 충분합니다.

시작하자!

환경 설정



프로젝트에 대한 디렉토리를 만들지 않았다면 지금 만드십시오. 한 번도 해본 적이 없다면 지금 시작하는 것이 좋습니다!

이 예에서는 내 디렉토리의 이름을 restful-api 로 지정하겠습니다. 터미널을 가리키고 실행python3 -m venv venv하여 가상 환경을 설치해 보겠습니다. Windows 사용자는 대신 py -3 -m venv venv를 실행하려고 합니다. 이제 venv 라는 새 디렉토리가 표시됩니다.

이 가상 환경을 사용하면 실제 시스템 파일을 건드리지 않고도 모든 python 패키지를 설치할 수 있습니다. 작업을 마치면(또는 어떻게든 엉망이 됨) 다시 사용할 준비가 되면 삭제하고 새 항목을 만들 수 있습니다. 그것이 작동하지 않을 것이기 때문에 그것을 이리저리 옮기고 싶은 유혹을 피하십시오(나는 그것을 어렵게 배웠습니다).

작업을 수행하기 전에 가상 환경을 활성화해야 합니다. 위에서 수행한 작업과 달리 이 작업은 무엇이든 실행하기 위해 새 터미널을 열 때마다 수행해야 합니다(예: 휴식에서 돌아올 때). 그렇게 하려면 . venv/bin/activate 를 실행하십시오. Windows 사용자는 대신 venv\Scripts\activate 를 실행합니다.

이제 이미 가상 환경에 있다고 가정하고 필요한 Python 패키지를 설치합니다. 실행pip install flask . Windows 사용자도 마찬가지입니다.

앱 만들기



설치가 완료된 후(또는 기다리는 동안) 대부분의 작업을 수행할 새 디렉터리app를 만듭니다. __init__.py라는 파일을 만들고 다음으로 채웁니다.

from flask import Flask

def create_app(config_object=None):
    app = Flask(__name__)

    @app.route('/')
    def hello():
        return 'Hello World!\n'

    return app


그게 다야! 작동하는 응용 프로그램을 만들었습니다.

작동 방식에 대한 자세한 내용은 Flask documentation을 확인하십시오.

실제로 모든 것을 하나의 파일에 넣고 다른 많은 튜토리얼처럼 모든 것을 훨씬 간단하게 만들 수 있습니다. 그러나 이 방법을 사용하면 더 크게 확장할 때 더 쉽게 관리할 수 있습니다. 나중에 감사할 수 있습니다.

앱 테스트



테스트하려면(설치 완료 후) flask run 를 실행하십시오. 이제 http://127.0.0.1:5000 를 통해 앱에 액세스할 수 있다는 것을 터미널에서 볼 수 있습니다.

이에 액세스하려면 모든 HTTP 클라이언트를 사용할 수 있습니다. 웹 브라우저는 이 단계를 수행하지만(계속 시도하십시오!) 다음 단계에서는 요청 데이터를 비교적 쉽게 조작해야 하므로 그렇지 않습니다.

그래서 우리는 명령줄 HTTP 클라이언트인 cURL을 사용할 것입니다. 이제 새 터미널을 열고 curl http://127.0.0.1:5000를 입력합니다(또는 curl localhost:5000를 입력할 수 있음).

Postman을 사용하고 있을 수 있습니다. 이미 익숙하다면 이 앱을 테스트하는 데 사용할 수 있습니다.

kenno-ideapad:[kenno]:~$ curl localhost:5000
Hello World!kenno-ideapad:[kenno]:~$ curl http://127.0.0.1:5000/
Hello World!kenno-ideapad:[kenno]:~$ 


만지기



But wait, shouldn't RESTful API be doing stuff in JSON?



그것은 사실입니다... 그리고 저는 단지 일을 작동시키는 방법을 보여드린 것뿐입니다.

이제 JSON에서 작동하도록 하기 위해 app/__init__.py 를 다시 방문합니다.
from flask import Flask가 있는 줄로 이동하여 끝에 , jsonify를 추가하여 from flask import Flask, jsonify로 바꿉니다.

이제 함수hello()로 이동하여 반환 문을 return 'Hello World!\n'에서 return jsonify({'message': 'Hello World!'})로 변경합니다.

당신은 이제 당신의 app/__init__.py
from flask import Flask, jsonify

def create_app(config_object=None):
    app = Flask(__name__)

    @app.route('/')
    def hello():
        return jsonify({'message': 'Hello World!'})

    return app


콘솔에서 Ctrl-C를 누르고 flask run 다시 실행하여 애플리케이션을 다시 시작하십시오.

cURL로 다시 확인하십시오.

kenno-ideapad:[kenno]:~$ curl http://127.0.0.1:5000/
{"message":"Hello World!"}
kenno-ideapad:[kenno]:~$ curl localhost:5000
{"message":"Hello World!"}
kenno-ideapad:[kenno]:~$ 


더 나은?

다음편을 기대해주세요! 그 동안 Linux 상자를 준비하고 홈 네트워크에 연결하십시오.

좋은 웹페이지 즐겨찾기