반응형

API 개발/Restful API 20

Restful API : 회원 관리 API를 위한 pbkdf2_sha256으로 비밀번호 암호화시키기

# 회원 관리 API에서 비밀번호를 안전하게 관리하기 위한 pbkdf2_sha256 해시 알고리즘을 사용- pbkdf2_sha256는 안전한 해시 함수로, 암호화된 비밀번호를 저장하고 검증하는 데 사용된다. # 암호화를 사용하기 위해 인스톨을 먼저 진행pip install psycopg2-binarypip install passlib # 비밀번호 관리를 용이하게 하기 위해 utils.py라는 파일을 새로 생성하여 코드 작성! # 라이브러리를 모두 설치하였으므로 이제 import# 해쉬 알고리즘 (단방향 암호화)from config import Configfrom passlib.hash import pbkdf2_sha256# 원문 비밀번호를, 단방향으로 암호화 하는 함수# 랜덤이더라도 시드값을 알면 패턴이..

Restful API : Python MySQL Connector 딜리트 하는 방법과 코드

# PUT 기능에서 이어서 진행! (참고 : https://sorktjrrb.tistory.com/145) # 레시피를 삭제(DELETE) 하는 API를 만들어 보자- 우선, 포스트맨을 실행시켜 DELETE로 설정하고, URL(삭제할 id값도 같이 입력) 입력!- Body 작성 필요없이 URL로만 전송 # VSCode에서 API 코드 작성!- id를 지정하여 가져오는 형태이므로 특정 레시피를 선택 및 수정했던 class에 이어서 작성 from flask import requestfrom flask_restful import Resourcefrom mysql_connection import get_connectionfrom mysql.connector import Error class RecipeResou..

Restful API : Python MySQL Connector 업데이트 하는 방법과 코드

#  SELECT 기능에서 이어서 진행! (참고 : https://sorktjrrb.tistory.com/143)  # 레시피를 수정(UPDATE) 하는 API를 만들어 보자- 우선, 포스트맨을 실행시켜 PUT으로 설정하고, URL(업데이트할 id값도 같이 입력) 입력!- Body에 raw 선택 JSON 형식으로 DB에 추가하고 싶은 정보를 입력해준다. # VSCode에서 API 코드 작성!- id를 지정하여 가져오는 형태이므로 특정 레시피를 선택했던 class에 이어서 작성 from flask import requestfrom flask_restful import Resourcefrom mysql_connection import get_connectionfrom mysql.connector import..

TypeError : Object of type ... is not JSON serializable 에러가 발생한 이유와 해결방법

에러가 발생한 이유와 해결방법 > # 바로 이전 게시글 형식과 이어짐 (https://sorktjrrb.tistory.com/143)# 이전 게시글에서 select 문에대해서 작성중에 해당 오류가 발생되는 경우가 있다.- TypeError : Object of type ... is not JSON serializable # 이유는 파이썬의 JSON 직렬화 불가능한 데이터 형식을 JSON으로 변환하려고 했기 때문- 이전 게시글에선 날짜와 시간을 ISO 형식의 문자열로 변환하여서 해결!- 이를 위해서는 datetime 객체의 isoformat() 메서드를 사용하면 된다.         # 클라이언트에 json 만들어서 응답한다. => 문자와 숫자로만 구성하여 보내야 한다.        ### 중요! DB에서..

Restful API : Python MySQL Connector 셀렉트 하는 방법

1) 전체 레시피 가져오는 API를 만들어 보자 우선, 포스트맨을 실행시켜 GET으로 설정하고, URL 입력!- insert 기능에서 이어서 진행! (참고 : https://sorktjrrb.tistory.com/142)- 겟(GET)과 딜리트(DELETE) 타입은 바디(Body)를 따로 입력하지 않는다!- 전체 데이터를 가지고 올때는 offset과 limit를 설정해서 25개씩만 가져오도록 설정하는게 페이지 구성에 좋기 때문에 이를 설정해서 가져오도록 하자- Params에 offset과 limit라는 키를 생성하고 값은 각각 0, 25로 설정 (URL 에도 추가한 offset 과 limit가 동작되도록 작성해 주어야함 http://127.0.0.1:5000/recipes?offset=0&limit=25..

Restful API : Python MySQL Connector 인서트 하는 방법

# 이제 DB 생성 및 가상환경 생성 그리고 실행에 필요한 프로그램들인 MySQL Workbench, Postman, Visual Studio Code 실행 및 세팅이 완료되었으니, API를 직접 코딩해 보자! # 포스트맨을 실행시켜 POST로 설정하고, URL 입력!- Body에 raw 선택 JSON 형식으로 DB에 추가하고 싶은 정보를 입력해준다. # VSCode에서 API 코드를 작성!- 작업의 용이성(실무적으로)을 위해 각 기능이 동작하는 API 코드를 작성할 파일들은 resource라는 폴더를 따로 생성하여 그안에서 작성 # recipe.py 파일 안에 레시피를 생성(insert) 하는 코드문 작성- query 문을 만들때는 꼭! MySQl Workbench로 실제 해당 문구가 정상 실행되는지를..

Restful API : Python 에서 MySQL 커넥션하는 법 (Config, mysql_connection 파일 만들기)

(Config, mysql_connection 파일 만들기) > # 이전장에서 전용 DB는 모두 생성을 완료하였으니, Python에 연결하여 코드를 작성하여야 한다!# 우선 실무에서도 적용할수 있도록 목적성에 맞게 파일을 나누어서 코드문을 작성하는것이 좋다! 보안 관리를 위한 config.py 파일과 DB 관리를 위한 mysql_connection.py 파일을 생성해 주자!ㄴ config.py 에선 보안관련 정보를 class로 만들어 따로 입력해서 관리 (보안관련 코드들이 추가되면 계속 config.py 파일 안에 새롭게 업로드하면서 관리하는것!)ㄴ mysql_connection.py 에선 config.py 에서 작성한 보안 class중 mysql db에 접속하는 함수를 작성하여 관리 # config.p..

728x90
반응형