Flask 20

REST API / RESTful API 차이점

REST(REpresentational State Transfer) 자원을 이름으로 구분해서 해당 자원의 상태를 주고 받는 것을 의미한다. 즉, resource(자원) 의 representation(표현) 에 의한 상태 전달이다. HTTP 프로토콜을 그대로 사용하여 웹의 장점을 활용할수 있는 아키텍쳐 스타일이며 client와 server사이의 통신 방식중 하나이다. 자원의CRUD(Create,Read,Update,Delete) 연산을 하기 위해 URI로 get,post,put,delete등의 메서드를 사용해서 요청을 보내고 특정 형태로 값을 돌려 받는다. REST의 구성요소는 URI와 메서드와 반환되는 형태 로 나뉜다. URI 모든 자원에는 고유 id가 존재하고 이 자원은 server내에도 존재한다. H..

Flask 2023.04.19

네이버의 Papago Open API 이용하기

네이버의 뉴스 파파고 open api 를 이용하는 방법이다. https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4 Papago 번역 - Papago API Papago 번역 개요 Papago 번역 개요 Papago 번역은 Papago의 인공 신경망 기반 기계 번역 기술(NMT, Neural Machine Translation)로 텍스트를 번역한 결과를 반환하는 RESTful API입니다. Papago 번역으로 번역할 수 있 developers.naver.com 1. 네이버 API 에 애플리케이션 등록 네이버 api 를 이용하기 위해서는 먼저 애플리케이션 등록을 해야한다. 애플리케이션 등록 (API) 이용 신청..

Flask 2023.01.13

네이버의 뉴스 검색 Open API 이용하기

네이버의 뉴스 검색 open api 를 이용하는 방법이다. https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4 검색 > 뉴스 - Search API 검색 > 뉴스 뉴스 검색 개요 개요 검색 API와 뉴스 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 영화, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API developers.naver.com 1. 네이버 API 에 애플리케이션 등록 네이버 api 를 이용하기 위해서는 먼저 애플리케이션 등록을 해야한다. 애플리케이션 등록 (API) 이용 신청은 아래처럼 하였다. 파이썬 코드를 이용하여서 개발할 것이기..

Flask 2023.01.13

이미지 파일과 내용을 올리면 DB 에 저장하는 API

Flask 프레임워크를 이용하여서 이미지 파일과 내용을 올리면 DB에 저장하는 API 를 개발하였다. DB에는 이미지 url 을 저장할 것이기 때문에, img 파일을 S3 에 저장하고 저장된 파일의 url 을 가져오도록 하였다. 1. postman POST Body - form-data - KEY 값 설정 먼저 포스트맨에서 설정을 먼저해주었다. 파일을 올리는 것이기 때문에 POST 이다. key 값에 photo, content 를 넣었다. 2. 코드 작성 사용한 라이브러리 from flask import request from flask_jwt_extended import jwt_required from flask_restful import Resource from mysql.connector impor..

Flask 2023.01.13

종속성이 있는 라이브러리를 lambda layer 로 만드는 방법

종속성이 있는 라이브러리를 lambda layer 로 만드는 방법이다. 라이브러리가 종속성이 있다라는 의미는 cmd 에서 라이브러리를 설치할 때, 다른 라이브러리들도 자동으로 같이 설치되면 그 라이브러리들이 설치한 라이브러리와 종속성이 있다고 한다. flask-jwt-extended 라이브러리를 설치했을 때의 결과이다. flask-jwt-extended 라이브러리만 설치하였지만 추가적으로 pyJWT, itsdangerous, importlib-metadata 등등의 파일이 함께 설치되었다. 이러한 라이브러리를 람다 레이어로 만들고자 하는 경우에는 함께 설치된 라이브러리도 함께 Zip 파일로 만들어 레이어에 추가해주어야 한다. 파이썬 라이브러리를 관리해주는 사이트인 PyPI로 이동을 한다. https://..

Flask 2023.01.12

S3 에 저장돼 있는 이미지를 객체 탐지 하는 API - Amazon Rekognition

Amazon Rekognition Amazon Rekognition 을 사용하면 애플리케이션에 이미지 및 비디오 분석을 쉽게 추가할 수 있다. https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/what-is.html Amazon Rekognition 란 무엇입니까? - Amazon Rekognition 기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다. Amazon Rekognition 란 무엇입니까? Amazon Rekognition Rekognition을 사용하면 애플리케 docs.aws.amazon.com Flask 를 이용하여, Amazon Rekognition Api 를 개발할 것이다...

Flask 2023.01.12

Serverless framework 를 Github Actions 를 이용하여 자동배포하기

서버리스 프레임워크를 Github Actions 를 이용하여서 자동배포 하는 방법이다. 자동배포하고자 하는 깃허브 레파지토리로 이동하여 Actions 를 선택한다. set up a workflow yourself 를 선택한다. main.yml 파일에 아래 코드를 작성한다. 오타가 나지 않도록 주의하여야 한다. 중요한 키는 Actions Secret 에 저장하였다. name: serverless deploy on: push: branches: - main jobs: deploy: name: deploy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install SLS and Deploy uses: serverless/github-ac..

Flask 2023.01.12

로그인한 회원과 비로그인 회원 구분하여 데이터를 나타내는 API 설계하기

로그인한 회원과 비로그인 회원 구분하여 데이터를 나타내는 API 설계하기 API 설명 : 영화 추천 API 로그인 회원과 비로그인 회원을 구분 영화 리스트를 가져오는 API 에서 로그인한 회원이 영화 리스트를 가져오도록 하면 즐겨찾기한 영화를 같이 나타낸다. ( Authorization 을 선택했을 때 ) 비로그인한 회원이 영화 리스트를 가져오도록 하면 영화 리스트들만 나타내도록 한다. ( Authorization 을 미선택 했을 때 ) 로그인한 회원이 영화 리스트를 가져오도록 하면, 아래의 결과처럼 즐겨찾기한 데이터에는 "favorite : 1" 로 표현할 것이다. 이럴때는 Visual Studio Code 에서 코드를 작성할 때, @jwt_required 의 optioanl 파라미터를 True로 두고..

Flask 2023.01.10

Flask, Postman 에서 offset, limit 로 데이터 끊어서 가져오기

쿼리 스트링을 이용하여 데이터 갯수만큼 출력하기 쿼리 스트링으로 오는 데이터는 request.args.get('문자열')로 처리하여 변수에 저장한다. Query String(쿼리 스트링) : URL에서 물음표(?) 뒤에 위치, 사용자의 입력을 전달하는 역할 예시) 'limit=3' , a=request.args.get('limit') a >>> 'limit=3' 쿼리 스트링으로 전달 받은 값으로 DB의 데이터 입력 받은 값만큼 목록 출력 코드 작성은 아래와같이 한다. # 클라이언트에서 쿼리스트링으로 보내는 데이터는 # request.args 에 들어있다. offset = request.args.get('offset') limit = request.args.get('limit') try : connecti..

Flask 2023.01.06

로그인한 유저만 처리할 수 있는 API 에 토큰 적용하는 방법

로그인한 유저만 처리할 수 있는 API 에 토큰을 적용하는 방법이다. 예를 들어서 레시피 작성하는 api 를 생성한다고 할 때, 내가 만든 레시피 리스트만 뽑아서 보거나 , 내 아이디로 레시피를 게시글을 작성할 때 이용하는 방법이다. API 함수를 작성할 때 함수 젤 위에 @jwt_required() 를 작성을 해준다. 함수 안에서 get_jwt_identity() 를 변수 user_id 로 받아주면, 로그인한 유저만 처리할 수 있도록 토큰을 변수 user_id 로 가져온 것이다. 쿼리문에서 user_id 에 변수 설정을 해주고, record 에는 위에서 받아온 user_id 를 넣어주면 된다. @jwt_required() def put(self, recipe_id) : user_id = get_jwt_..

Flask 2023.01.05