Как написать правильный API под python?

Здравствуйте!

Поделитесь, пожалуйста, опытом. Цель: написать API (предназначение самого API не важно в данном случае, просто ввод/ вывод определенных данных) под python, главной задачей является обращение к API двумя способами, через веб, к примеру:
api.host/?func=create&user=test
и через консоль:
[root@api ~]# /usr/local/api/bin/api.py func=create user=test

Возможно есть готовые какие-то схемы или фреймворки?
Спасибо.
  • Вопрос задан
  • 12001 просмотр
Пригласить эксперта
Ответы на вопрос 6
@stopbreath
начинающий/практикующий python-программист
Может это вам поможет. Список блогов по написанию api. Даже на python есть аж целых 4 примера
Ответ написан
skipirich
@skipirich
проходил мимо
Как уже сказали выше API можно написать на любом фреймворке главное чтобы он соответствовал методологии REST(по хорошему). Как вариант можете взглянуть вот на этот пост blog.miguelgrinberg.com/post/designing-a-restful-a... здесь показано как строить api на примере flask. В посте плохо освещено использование flask.ext.restful советую на него взглянуть если решите делать с помощью flask.
Да и вот еще одно замечание - restapi подразумевает работу через http сервер поэтому вот так [root@api ~]# /usr/local/api/bin/api.py func=create user=test из консоли работать не будет. Должно быть что то типа
[root@api ~]# curl -i api.host/?func=create&user=test
Ответ написан
AloneCoder
@AloneCoder
[object Object]
@louvremaster Автор вопроса
Я раньше использовал bottle исключительно под веб для API, на сколько я понимаю все эти фреймворки типа fhalcon и bottle не позволяют использовать одновременно еще и консольный вариант, потому возможно нужно отдельно писать отдельно под консоль какую-то обвертку, а уже в библиотеках своих учитывать эти все аргументы. Но чувствую, что это костыль:)

Кстати, есть ли у кого опыт с libvirt-python? Не нашел в документации как менять конфиг домена по типу virsh edit, неужели "руками" сам xml в /etc/libvirt/qemu/domain.xml?
Ответ написан
Комментировать
suguby
@suguby
программист, python, django, mysql, git, hg, linux
я бы в джанго заюзал habrahabr.ru/post/160117 апи командной строки реализовал через manage команды - там обертка на вызовы :)
Ответ написан
Комментировать
gunlinux
@gunlinux
Freelancer
www.youtube.com/watch?v=px_vg9Far1Y
http://blog.futurecolors.ru/2012/07/developing-res...

Flask для веба

Правильный api подразумевает restfull
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы