https://github.com/ziozzang/generic-restful-api-server
Generic RESTful API Server using Python
https://github.com/ziozzang/generic-restful-api-server
Last synced: 4 months ago
JSON representation
Generic RESTful API Server using Python
- Host: GitHub
- URL: https://github.com/ziozzang/generic-restful-api-server
- Owner: ziozzang
- License: mit
- Created: 2014-05-08T05:15:51.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2014-05-08T06:21:18.000Z (about 12 years ago)
- Last Synced: 2025-07-27T09:41:28.845Z (12 months ago)
- Language: Python
- Size: 145 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Generic RESTful API Server
==========================
Python 으로 범용의 RESTful API 서버를 구현 해봄. Flask 와 Django 를 사용하여 구현 하였음
알려진 이슈
===========
HTTP Response code 전달에 이슈가 있어서 현재 Django 의 경우 Error code 전달이 애매한 상황임.
설치
====
코드는 DB 커넥션부 구현을 위하여 pysqlpool 을 사용 하고 있다. 이 모듈은 MySQL 에 대하여 커넥션 풀링을 구현하여 준다.
```
apt-get install python-pip python-mysqldb
pip install pysqlpool
```
코드는 xml 출력을 위하여 dict2xml 을 사용 하고 있다.
```
pip install dict2xml
```
테스트 클라이언트
=================
해당 서버는 Cloudstack 의 시그니처 생성 로직에 호환된다. 해당 부분을 지원하는 ucloud python 클라이언트를 통하여 테스트가 가능하다.
https://github.com/ziozzang/ucloud
Flask 에서 사용
===============
코드는 웹 프레임워크로 Flask 를 사용 하고 있다. 이 모듈은 Python 웹 프레임워크를 구현 하여 주고 있다.
```
apt-get install python-flask
```
웹서버를 구동하기 위하여 gunicorn 을 사용 하고 있다.
```
apt-get install gunicorn
```
Django 에서 사용
================
Django 에서 사용하기 위해서 다음과 같이 설정 하도록 한다.
장고 설치
```
pip install django
```
프로젝트 생성
```
django-admin.py startproject mysite
```
앱 설정
```
./manage.py startapp hello
```
- 앱 안에 views.py 를 포함한 py 소스 복사.
- commands.py 수정
urls 에 다음의 형식으로 url 설정
```
from api_server import views
urlpatterns = patterns('',
url(r'^api$', views.generic_api_call)
)
```
테스트 장고 서버 실행
```
./manage.py runserver 0.0.0.0:7878
```
한계점 : 오류 코드 리턴에 이슈가 있음
테스트 API
==========
현재 테스트 API로 echo 가 있음. params 아래에 응답을 돌려주도록 되어 있음
라이센스
========
MIT license.