basitapi

UNKNOWN


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

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)