fatiherikli

Hipo olarak hazırladığımız API'lar için bir test konsolu uygulamasına ihtiyaç duyduk. Birazcık araştırma yaptıktan sonra Django için istediğimiz tarzda bir API konsolunun olmadığını farkettik. Bu sebeple hem API'ı kullanan geliştirice hem de kendimize düzgün bir test platformu oluşturmak için Django API Playground'ı yazma kararı aldık.

Ayrıca Django API Playground, test konsolu dışında geliştiricilerin API'ın döndürdüğü sonuçlar hakkında geribildirimler yapacabileceği bir feedback mekanizması da sağlamaktadır.

Uygulamanın ekran görüntüsü ve demosu şu şekilde:

API Playground

http://api-playground-demo.hipo.biz

Kurulum

İlk önce django-api-playground paketini yükleyelim.

pip install git+git://github.com/Hipo/Django-API-Playground.git

Django projemizin settings.py dosyasında bulunan INSTALLED_APPS'e apiplayground paketini ekleyelim.

INSTALLED_APPS =(
    # ...
    'apiplayground',
)

Projemize uygulamayı ekledikten sonra bir Playground tanımlayabiliriz. Test konsolu açacağımız uygulamaya dizinine ya da herhangi bir yerde playgrounds.py adında bir dosya oluşturalım. Bu modülün içi aşağıdaki gibi olmalı.

# api/playgrounds.py

from apiplayground import APIPlayground

class ExampleAPIPlayground(APIPlayground):

    schema = {
        "title": "API Playground",
        "base_url": "http://localhost/api/",
        "resources": [
            {
                "name": "/feedbacks",
                "description": "This resource allows you to manage feedbacks.",
                "endpoints": [
                    {
                        "method": "GET",
                        "url": "/api/feedbacks/{feedback-id}",
                        "description": "Returns a specific feedback item"
                    },
                    {
                        "method": "POST",
                        "url": "/api/feedbacks/",
                        "description": "Creates new feedback item",
                        "parameters": [{
                            "name": "title",
                            "type": "string"
                        },
                        {
                            "name": "resource",
                            "type": "string"
                        },
                        {
                           "name": "description",
                           "type": "string"
                        }]
                    }
                ]
            },
        ]
    }

Örnekte APIPlayground sınıfından başka bir sınıf türetip test konsolumuzda bulunacak API Resource'larını tanımladık. Gördüğünüz gibi oldukça basit bir işlem. Bunlar hakkında detaylı dökumantasyonu yakında yayınlayacağız.

Şimdi ise url tanımlamalarımızı yapalım.

# urls.py

from api.playgrounds import ExampleAPIPlayground

urlpatterns = patterns('',
    (r'api-explorer/', include(ExampleAPIPlayground().urls)),
)

Bunu da tamamladıktan sonra API Playground'unuzu artık çalıştırabilirsiniz.

Birlikte geliştirelim

Eğer proje ilginizi çektiyse Github üzerinden projeyi geliştirmemize yardımcı olabilirsiniz:

Projenin github üzerindeki repo'su şuradadır:

https://github.com/Hipo/django-api-playground

comments powered by Disqus