basitapi

UNKNOWN


Keywords
rest, api, django
License
MIT
Install
pip install basitapi==0.1

Documentation

BasitApi Build Status

RESTful API olu┼čturman─▒zda size yard─▒mc─▒ olan basit bir k├╝t├╝phane. Django'nun s─▒n─▒f temelli View yap─▒s─▒ ├╝zerine kurulu. Bir RESTful API'de olmas─▒ gereken baz─▒ temel ├Âzellikleri sunar ve ba┼čka da bir i┼če kar─▒┼čmaz.

Sundu─ču baz─▒ temel ├Âzellikler:

  • Ba─člant─▒daki method parametresi ile HTTP_METHOD ba┼čl─▒─č─▒n─▒n ezilmesi.

    Baz─▒ istemciler sadece baz─▒ metodlar─▒ g├Ândermekle k─▒s─▒tland─▒r─▒labilirler. Bu t├╝rl├╝ bir durumda API'nin do─čru ├žal─▒┼čabilmesi i├žin ba─člant─▒ i├žinde method isimli parametreyi kullanabilirsiniz. Bu parametre ile HTTP_METHOD ezilir ve g├Ânderdi─činiz method parametresindeki de─čere g├Âre i┼člemler y├╝r├╝t├╝l├╝r.

  • Her zaman 200 HTTP kodu ile d├Ân├╝┼č.

    Baz─▒ istemciler sadece baz─▒ hata kodlar─▒na yan─▒t verebilirler. BasitApi bu t├╝r durumlar i├žin suppress_response_codes parametresine destek vermekte. Bu parametre de─čeri 1 olarak g├Ânderildi─činde durumu ne olursa olsun t├╝m yan─▒tlar 200 kodu ile g├Ânderilmekte.

  • Yan─▒t format─▒.

    Hem Accept ba┼čl─▒k bilgisine hem de ba─člant─▒ dosya son ekine g├Âre yan─▒t format─▒ ayarlanabilmekte.

Kurulum

PyPi ├╝zerinden kurulum i├žin a┼ča─č─▒daki komutu kullanabilirsiniz:

$ pip install basitapi

Github ├╝zerinden kurulum i├žin a┼ča─č─▒daki komutu kullanabilirsiniz:

$ pip install -e git://github.com/omerucel/basitapi.git#egg=basitapi

Kullan─▒m

settings.py

INSTALLED_APPS=(
    ...
    'basitapi'
)

urls.py

Ba─člant─▒ dosya son ekine g├Âre yan─▒t format─▒n─▒ ayarlamak istemiyorsan─▒z ba─člant─▒lar─▒n─▒z─▒ format_suffix_patterns ile tekrar formatlaman─▒za gerek yok!

from basitapi.urlpatterns import format_suffix_patterns
from appname.views import ViewName

urlpatterns = patterns(
    url(r'^foo', ViewName.as_view()),
    ...
)

urlpatterns = format_suffix_patterns(urlpatterns)

views.py

from basitapi.exception import ApiException
from basitapi.response import ApiResponse
from basitapi.views import ApiView

class ViewName(ApiView):
    def get(self, request):
        return ApiResponse({
            'result' : 'data'
        })

    def post(self, request):
        raise ApiException('Bir hata olustu', status=403, application_code=1111)