Использование APIView с немодельными полевыми сериализаторами в DRF - PullRequest
0 голосов
/ 08 июня 2019

Я изучаю использование сериализаторов для обработки запросов GET / POST с внешними вызовами API.Все эти поля приходят отдельно от отдельных конечных точек, а затем необходимо объединить их все в один ответ.Для этих данных нет модели, так как нам не нужно их хранить - только получение от внешнего API и обслуживание внешнего интерфейса в виде совокупности.Следовательно, я не смог найти много вариантов реализации не-модельного сериализатора, подобного моему случаю, так как большинство ответов связано с классом / моделью.

# This is a sample data that I get through an external API using the following link: https://example.com/api/books/bk001/authors

{
    "book_id": "bk001",
    "book_authors": {
        "author_1": "John Doe",
        "author_2": "Sarah Brown"
        }           
}

Вот мой код, но я не уверен, правильно ли я это делаю:

# serializers.py
class BookSerializer(serializers.Serializer):
    book_id = serializers.CharField()
    book_authors = serializers.DictField()

# views.py
class BookView(views.APIView):
    serializer_class = serializers.BookSerializer

    def get(self, request, book_id):        

        book_authors = requests.get(f"https://example.com/api/books/{book_id}/authors").json()
        return Response(book_authors)

Этоправильный способ использовать его в данном случае?

...