Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Написание простых RESTful Web Services на Питоне [RSS Feed]

#1 Авг. 17, 2009 14:34:57

Constantine
От:
Зарегистрирован: 2009-08-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Написание простых RESTful Web Services на Питоне

Здравствуйте, уважаемые форумчане! :)

Недавно озадачился такой задачей, как написание XML REST вебсервиса (пока только прототип). Хотелось сделать это максимально просто, но за пару дней не удалось найти очень простых средств для скриптовых языков. Решил написать на Питоне самостоятельно. Вот что получилось (пока что очень сырая версия, некоторые вещи еще хочется добавить): http://code.google.com/p/python-very-simple-web-services/

Пример вебсервиса:

#! /usr/bin/env python

from vsws import url_pattern, Controller
from webob import Request, Response

@url_pattern("/users")
@url_pattern("/all_users")
@url_pattern("/users/${username}/list", ['GET'])
def get_users (response):
response.status = 200
return "Inside get_users()"

@url_pattern("/users/${username}")
def get_user (username):
return {"body": "Inside get_user('%s')" % username, "status": 201}

@url_pattern("/users/${username}/plans", ['GET', 'PUT'])
def get_plans (username):
return "Inside get_plans('%s'), GET or PUT" % username

@url_pattern("/users/${username}/plans", ['POST'])
def get_plans (username):
return "Inside get_plans('%s'), POST" % username

@url_pattern("/users/${username}/plans/${year}")
def get_plan (username, year, method, param2 = ''):
return "Inside get_plan('%s', %s, %s, %s)" % (username, year, method, param2)

print Request.blank ('/users/john/plans/2009?param1=value1&param2=value2').get_response (Controller())
Мне кажется, что это я повторил что-то уже существующее, просто за целый день не смог найти, что именно :) Как бы то ни было, пользуйтесь на здоровье, кому надо. Принимается любая критика.



Офлайн

  • Начало
  • » Web
  • » Написание простых RESTful Web Services на Питоне[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version