GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

encode

django-rest-framework – DjangoのWeb API

投稿日:

Django RESTフレームワーク

素晴らしいWebブラウジング可能なWeb API。

プロジェクトの完全なドキュメントは、 http://www.django-rest-framework.orgで入手できます


資金調達

RESTフレームワークは共同で資金提供されるプロジェクトです。 商用RESTフレームワークを使用する場合は、有料プランにサインアップすることで、継続的な開発に投資することを強くお勧めします。

最初の目的は、RESTフレームワーク上で単一のフルタイムポジションを提供することです。 すべてのシングルサインアップはそれを可能にするために大きな影響を与えます。

私たちのすばらしいスポンサー 、特にローバーセントリーストリームマシナルロールバーのプレミア・バッカーに感謝します。


概要

Django RESTフレームワークは、Web APIを構築するための強力で柔軟なツールキットです。

RESTフレームワークを使用する理由はいくつかあります。

ここでは、テスト目的のライブサンプルAPIがあります

以下閲覧可能なAPIのスクリーンショット


要件

  • Python(2.7,3.4,3.5、3.6)
  • Django(1.10、1.11、2.0)

インストール

pipを使用してインストール…

pip install djangorestframework

あなたのINSTALLED_APPS設定に'rest_framework'を追加してください。

INSTALLED_APPS = (
    ...
    'rest_framework',
)

RESTフレームワークを使用してユーザーとグループにアクセスするための単純なモデルバックアップAPIを作成する簡単な例を見てみましょう。

そういう新しいプロジェクトを始める…

pip install django
pip install djangorestframework
django-admin.py startproject example .
./manage.py migrate
./manage.py createsuperuser

プロジェクトのexample/urls.pyモジュールを編集します。

from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import serializers, viewsets, routers

# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff')


# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer


# Routers provide a way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)


# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

私たちのAPIのためのいくつかの設定を構成したいと思います。

settings.pyモジュールに以下を追加してください:

INSTALLED_APPS = (
    ...  # Make sure to include the default installed apps here.
    'rest_framework',
)

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}

これで終わりです!

./manage.py runserver

ブラウザでAPIを開き( http://127.0.0.1:8000/ 、新しい「ユーザー」APIを表示できます。 右上隅にあるLoginコントロールを使用すると、システムからユーザーを追加、作成、削除することもできます。

また、 curlなどのコマンドラインツールを使用してAPIとやり取りすることもできます。 たとえば、ユーザーのエンドポイントをリストするには、次のようにします。

$ curl -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
[
    {
        "url": "http://127.0.0.1:8000/users/1/",
        "username": "admin",
        "email": "admin@example.com",
        "is_staff": true,
    }
]

新しいユーザーを作成するには:

$ curl -X POST -d username=new -d email=new@example.com -d is_staff=false -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
{
    "url": "http://127.0.0.1:8000/users/2/",
    "username": "new",
    "email": "new@example.com",
    "is_staff": false,
}

ドキュメンテーションとサポート

プロジェクトの完全なドキュメントは、 http://www.django-rest-framework.orgで入手できます

質問とサポートについては、 RESTフレームワークディスカッショングループ 、またはfreenode IRCの#restframeworkを使用してください。

あなたはTwitterの作者に従ってもいいかもしれません。

セキュリティ

Django RESTフレームワークでセキュリティ上の問題があると思われる場合は、公開フォーラムで問題を提起しないでください。

問題の説明をメールでrest-framework-security@googlegroups.comに送信してください プロジェクトの保守担当者は、公開する前に、必要に応じて問題を解決するために協力します。







-encode

執筆者: