전체 글 158

[AWS]Serverless deploy 오류 해결, 로컬 작업한 파일 옮기기

만들어둔 aws-recipe-server 폴더를 Vscode 로 연다. 가상환경을 맞춰주고 터미널 cmd를 열어서serverless deploysls deploy둘 중 하나 선택해서 입력  플러그인이 없다는 오류가 발생했다. 이 경우에는 npm install serverless-wsgi --save-dev 입력해서 설치해준다. 다른 에러가 발생했다.. 이 경우에는 serverless.yml 파일에package: individually: true exclude: - node_modules/** # node_modules 폴더와 그 하위 모든 파일 및 디렉토리 제외 - .git/** # .git 폴더와 그 하위 모든 파일 및 디렉토리 제외 - tests/** # tests 폴더와 그..

AWS 2024.05.23

[AWS] Serverless Framework 설치

https://nodejs.org/en  Node.js — Run JavaScript EverywhereNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org 먼저 Node.js 를 설치 설치 후 cmd 에서  serverless 프레임워크를 설치  설치가 완료되면 Github 경로로 들어가서 serverless 입력 Python 의 Flask API 선택 선택 후 이름을 만들어준다. 이후 Login/Register 선택하고 링크로 넘어가서 회원가입과 로그인을 해준다. Create A New App 선택 이름 입력 Save AWS Credentials in a Local Profile 선택 https://iwhn..

AWS 2024.05.23

[Restful API] 로그아웃 시키는 방법

로그아웃 된 토큰을 관리할 set 생성# 로그아웃된 토큰을 저장할 set 을 만든다.# 로그아웃된 토큰의 식별자(JTI)를 저장하여 추후 요청에서 해당 토큰이 사용되지 못하게 한다.jwt_blacklist = set()class UserLogoutResource(Resource): @jwt_required() def delete(self): # 현재 요청에서 사용된 JWT 토큰의 JTI(JWT ID)를 가져옴 # JTI는 토큰의 고유 식별자 jti = get_jwt()['jti'] # 현재 사용된 JWT 토큰의 JTI를 블랙리스트에 추가 # 이를 통해 이 토큰이 이후에 더 이상 사용되지 못하도록 한다. jwt_..

Restful API 2024.05.22

[Restful API] 회원가입 / 로그인 API 에서 토큰 생성해서 처리하는 방법

회원가입 API에서 토큰 생성해서 처리하는 코드 작성from email_validator import EmailNotValidError, validate_email# 이메일 주소가 올바른지 확인하기 위한 라이브러리from flask import requestfrom flask_jwt_extended import create_access_tokenfrom flask_restful import Resourcefrom mysql_connection import get_connectionfrom mysql.connector import Errorfrom utils import check_password, hash_passwordclass UserRegisterResource(Resource): def po..

Restful API 2024.05.22

[Restful API] Flask 에서 JWT 설치 및 설정하는 방법

설치pip install flask-jwt-extended Config 파일의 클래스 안에 JWT 관련 변수 세팅class Config : # JWT 관련 변수 셋팅 JWT_SECRET_KEY = '1a2a3a4a5a' JWT_ACCESS_TOKEN_EXPIRES = False # 만료없이 설정 PROPAGATE_EXCEPTIONS = True # 에러가 나면 보여줄것 app.py의 환경변수 세팅 밑에 JWT매니저 초기화 코드 입력from flask import Flaskfrom flask_jwt_extended import JWTManagerfrom flask_restful import Apifrom config import Configapp = Flask(__name__)# 환경..

Restful API 2024.05.22

[Restful API] Python MySQL Connector delete

포스트맨에서 DELETE 로 설정하고 URL을 입력GET과 DELETE는 Body를 설정하지 않는다.Visual Studio Code에서 코드 작성 변경 사항은 실제로는 데이터베이스에 반영되기 전에 메모리에만 저장된다. 이렇게 메모리에 저장된 변경 사항을 데이터베이스에 영구적으로 적용하기 위해 commit()을 호출한다.class RecipeResource(Resource): def delete(self, recipe_id): print(recipe_id) try: connection = get_connection() query = '''delete from recipe where id = %s..

Restful API 2024.05.21

[Restful API] Python MySQL Connector update

포스트맨을 실행시켜 PUT로 설정하고 URL 입력raw JSON형식으로 DB에 업데이트할 정보를 입력  Visual Studio Code에서 코드 작성변경 사항은 실제로는 데이터베이스에 반영되기 전에 메모리에만 저장된다.이렇게 메모리에 저장된 변경 사항을 데이터베이스에 영구적으로 적용하기 위해 commit()을 호출한다.class RecipeResource(Resource): def put(self, recipe_id): # 1. 클라이언트로부터 데이터를 받아온다. data = request.get_json() print(recipe_id) # 2. DB 에 수정한다. try: connectio..

Restful API 2024.05.21