2024.08.28 - [Kakaotech Bootcamp/개인실습] - [OpenAI API] flask로 서버 생성
[OpenAI API] flask로 서버 생성
2024.08.27 - [Kakaotech Bootcamp/개인실습] - [OpenAI API] 모델 선택과 텍스트 생성하기 [OpenAI API] 모델 선택과 텍스트 생성하기2024.08.27 - [Kakaotech Bootcamp/개인실습] - .env 파일 / 환경 변수(environment variables)
zo0oz.tistory.com
서버에 올리기 전, 클라이언트와 서버 간의 상호작용이 올바르게 이루어지는지 테스트를 해본다.
이때 Postman을 사용하면 API 개발 단계에서 프론트엔드가 준비되기 전에 API의 동작을 미리 확인하고 검증할 수 있다.
엔드포인트 테스트(Endpoint Testing)란?
- 웹 애플리케이션 또는 API의 개별 엔드포인트(즉, 특정 URL 경로와 HTTP 메서드에 대한 요청 처리 로직)를 테스트하는 것을 의미
엔트포인트(Endpoint)란?
- API에서 클라이언트가 서버에 요청을 보내기 위해 접근하는 URL 경로로, 주로 HTTP 메서드와 결합되어 사용된다.
- GET /users: 모든 사용자 목록을 반환하는 엔드포인트.
- POST /users: 새로운 사용자를 생성하는 엔드포인트.
- GET /users/{id}: 특정 ID를 가진 사용자의 정보를 반환하는 엔드포인트.
- PUT /users/{id}: 특정 ID를 가진 사용자의 정보를 업데이트하는 엔드포인트.
- DELETE /users/{id}: 특정 ID를 가진 사용자를 삭제하는 엔드포인트.
엔드포인트 테스트 목적
- 정상 동작 확인: 각 엔드포인트가 예상대로 동작하는지 확인
- 에러 처리 검증: 잘못된 요청이나 예외적인 상황에 대해 서버가 적절한 에러 응답을 반환하는지 확인
- 응답 데이터 검증: 엔드포인트가 반환하는 응답 데이터가 올바른 형식이고, 기대하는 데이터 구조와 일치하는지 검증
- 보안 및 인증 테스트: 특정 엔드포인트가 인증이나 권한 검사와 같은 보안 요구사항을 충족하는지 확인
엔드포인트 테스트 방법
- 수동 테스트
- Postman: 수동으로 HTTP 요청을 보내고, 서버의 응답을 확인한다.
- 브라우저: 간단한 GET 요청의 경우, 웹 브라우저에서 URL을 입력하여 서버 응답을 확인
- 자동화된 테스트
- Unit Test: Flask의 unittest 또는 pytest 와 같은 테스트 프레임워크를 사용하여 엔드포인트 테스트 자동화
pytest 사용한 엔드포인트 테스트 예시
def test_get_users(client):
response = client.get('/users')
assert response.status_code == 200
assert isinstance(response.json, list)
- CI/CD 통합: CI/CD 파이프라인에 통합하여 코드가 변경될 때마다 자동으로 테스트가 실행되도록 할 수 있다.
* 나는 POST 메서드를 통해 클라이언트와 서버의 통신만을 확인할 예정이라서 Postman 도구를 사용해서 테스트를 하기로 했다.
Postman이란?
- API를 개발, 테스트, 관리, 문서화하는 데 사용되는 도구
- 다양한 기능을 제공하여 API와 상호작용하는 작업을 쉽게 만들어준다.
언제 Postman을 사용하는가?
1. API 개발 단계에서
- 백엔드 개발 중: API 엔드포인트를 구축하면서, 해당 API가 예상대로 작동하는지 확인하기 위해
- 프론트엔드와의 통합 전에: 프론트엔드가 준비되기 전에 API의 동작을 미리 확인하고 검증할 수 있다.
2. 프론트엔드와 백엔드 통합 후
- 통합 테스트: 프론트엔드에서 발생할 수 있는 문제와 별개로, API 자체의 문제를 진단
3. 프론트엔드 없이 API 테스트 시
- 클라이언트 앱 없이 API 테스트: 클라이언트 애플리케이션(웹, 모바일 앱 등)이 아직 개발되지 않았거나, 특정 API 동작을 독립적으로 테스트하고 싶을 때
4. API 문서화 및 공유
5. API 모니터링 및 자동화
Postman으로 API 테스트 과정
1. Postman 설치 및 실행
: 아래의 링크에서 os에 맞게 다운로드한다.
Download Postman | Get Started for Free
Try Postman for free! Join 30 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.
www.postman.com
- 설치 화면
postman 설치하고 가입 후 Home 화면은 위와 같다.
우측 상단에 New Request를 누른다.
나는 @app.route('/chat', methods=['POST']) 에서 POST 메서드를 사용하므로 빨간 네모 부분을 눌러 POST로 변경해준다.
[Enter URL or paste test] 입력 칸에 http://localhost:5001/chat 를 입력한다.
# testapp.py
if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True)
에서 포트 넘버를 5001 로 설정했기 때문에 localhost:5001이 되는거다!
* 만약 애플리케이션이 원격 서버에서 실행되고 있다면, 해당 서버의 IP 주소 또는 도메인 이름을 사용해야 한다.
flask 서버 파일인 testapp.py 파일을 터미널에서 실행해준다. (testapp.py 파일 위치로 이동 후, python3 testapp.py 명령 실행)
body를 클릭하고 raw를 체크하면, 아래에 클라이언트가 입력할 수 있는 창이 생긴다.
{
"prompt": "입력하고 싶은 텍스트"
}
이렇게 입력을 한다.
입력을 한 후, Send를 누르면 아래 화면에서 응답 결과를 반환받을 수 있다.
다음과 같이 입력값에 적당한 출력값이 나오면 테스트 성공이다!
'💥 Projects > 개인실습' 카테고리의 다른 글
[OpenAI API] flask로 서버 생성 (0) | 2024.08.28 |
---|---|
[OpenAI API] 모델 선택과 텍스트 생성하기 (0) | 2024.08.27 |
[OpenAI API] OpenAI API 키 발급 (0) | 2024.08.21 |
[RAG를 활용하여 데이터 검색 및 활용] 계획서 (0) | 2024.08.20 |
[OpenAI API를 사용하여 텍스트 생성 및 처리] 계획서 (0) | 2024.08.01 |