現在AWSを使ったAPIの作成を行っています。
GET http://(IPアドレス)/user.json
を行うと
[{"id":1,"name":"tanaka","mail":"T@gmail.com"},{"id":2,"name":"matsuyama","mail":"M@gmail.com"}]
と配列に入った状態で返ってきます。
これを
{{"id":1,"name":"tanaka","mail":"T@gmail.com"},{"id":2,"name":"matsuyama","mail":"M@gmail.com"}}
JsonObjectで返ってきて欲しいです。
ちなみに
GET http://(IPアドレス)/user/1.json
を行うと
{"id":1,"name":"tanaka","mail":"T@gmail.com"}
が返ってきます。
serializers.py
serializers.py
1from rest_framework import serializers 2from polls.models import User 3 4 5class UserSerializer(serializers.ModelSerializer): 6 class Meta: 7 model = User 8 fields = ('id', 'name', 'mail')
views.py
views.py
1from rest_framework import status 2from rest_framework.decorators import api_view 3from rest_framework.response import Response 4 5from polls.models import User 6from polls.serializers import UserSerializer 7 8@api_view(['GET', 'POST']) 9def user_list(request, format=None): 10 11 if request.method == 'GET': 12 #UserをMySQLから全件取得 13 polls = User.objects.all() 14 serializer = UserSerializer(polls, many=True) 15 #Jsonで返してくる 16 17 return Response(serializer.data) 18 19 20 elif request.method == 'POST': 21 serializer = UserSerializer(data=request.data) 22 if serializer.is_valid(): 23 serializer.save() 24 #登録成功するとJsonデータが帰ってくる ##status 200番台は処理が成功した 25 return Response(serializer.data, status=status.HTTP_201_CREATED) 26 return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) 27 28@api_view(['GET', 'DELETE']) 29def user_detail(request, pk, format=None): 30 try: 31 polls = User.objects.get(pk=pk) 32 except Snippet.DoesNotExist: 33 return Response(status=status.HTTP_404_NOT_FOUND) 34 35 if request.method == 'GET': 36 serializer = UserSerializer(polls) 37 return Response(serializer.data) 38 39 elif request.method == 'DELETE': 40 snippet.delete() 41 ## HttpResponseをResponseに変更 42 return Response(status=status.HTTP_204_NO_CONTENT)
apps/urls.py
from django.urls import path from rest_framework.urlpatterns import format_suffix_patterns from polls import views urlpatterns = [ path('user/', views.user_list), path('user/<int:pk>/',views.user_detail) ] urlpatterns = format_suffix_patterns(urlpatterns)
models.py
from django.db import models class User(models.Model): #作成時刻を記録 created = models.DateTimeField(auto_now_add=True) #Userの名前を記録 name = models.CharField(max_length=100, blank=True, default='') #Userのemail mail = models.TextField() class Meta: ordering = ('created',)
https://qiita.com/Gattaca/items/419e2a2cf23b6a9f1028
https://qiita.com/Gattaca/items/c51a9fdd6c6357ebe87b
上記のサイトを参考に作成しました
https://teratail.com/questions/156354
上記のサイトをみましたが、よくわかりませんでした。
よろしくお願いします。
あなたの回答
tips
プレビュー