Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

828
Visualizações
generics vs viewset en django rest framework, ¿cómo preferir cuál usar?

¿Cómo preferir cuál de los genéricos y el conjunto de vistas usar? en otras palabras, ¿cuándo debo usar genéricos y cuándo debo usar viewset para construir api? Sé que hacen lo mismo, pero viewset tiene enrutadores, entonces, ¿en qué situación los genéricos son mejores que viewset?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Mi regla de oro para esto es usar genéricos siempre que tenga que anular los métodos predeterminados para lograr diferentes especificaciones de las vistas de lista y detalles.

Por ejemplo, cuando tiene diferentes clases de serializador para enumerar sus recursos y para recuperar los detalles de un recurso por id, considero que usar genéricos es una mejor opción, ya que probablemente la lógica de estos dos puntos finales evolucionará por separado. Tenga en cuenta que es una buena práctica mantener diferentes lógicas desacopladas.

Cuando su punto final es muy simple y no necesita personalizar la lógica entre las operaciones de lista/creación y recuperación/actualización/eliminación, puede usar el conjunto de vistas, pero teniendo en cuenta que puede ser bueno separarlo en dos vistas en caso de que estas operaciones La lógica comienza a crecer en diferentes caminos.

over 4 years ago · Santiago Trujillo Relatório

0

Son diferentes, vamos a ver.

DRF tiene dos sistemas principales para manejar vistas:

  1. APIView : proporciona un controlador de métodos para los verbos http : get , post , put , patch y delete .
  2. ViewSet : esta es una abstracción sobre APIView, que proporciona acciones como métodos:
    • list : solo lectura, devuelve múltiples recursos (verbo http: get ). Devuelve una lista de dictados.
    • retrieve : solo lectura, recurso único (verbo http: get , pero esperará una identificación en la URL). Devuelve un único dict.
    • create : crea un nuevo recurso (verbo http: post )
    • update/partial_update : edita un recurso (verbos http: put/patch )
    • destroy : elimina un recurso (verbo http: delete )

Ambos se pueden usar con direcciones URL normales de Django.

Debido a las convenciones establecidas con las acciones , ViewSet también tiene la capacidad de asignarse a un enrutador , lo que es realmente útil.

Ahora, ambas vistas tienen accesos directos , estos accesos directos le brindan una implementación simple lista para usar.

GenericAPIView : para APIView , esto le brinda accesos directos que se asignan de cerca a sus modelos de base de datos. Agrega el comportamiento comúnmente requerido para la lista estándar y las vistas detalladas. Le da algunos atributos como serializer_class , también da pagination_class , filter_backend , etc.

GenericViewSet : hay muchos GenericViewSet, el más común es ModelViewSet . Heredan de GenericAPIView y tienen una implementación completa de todas las acciones : list , retrieve , destroy , updated , etc. Por supuesto, también puede elegir algunas de ellas, leer los documentos .

Entonces, para responder a su pregunta: DRY , si está haciendo algo realmente simple, con un ModelViewSet debería ser suficiente, incluso redefinir y llamar a super también es suficiente. Para casos más complejos, puede optar por clases de nivel inferior.

¡Espero haberte ayudado!

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Assistente virtual