graphql-python / graphql-python/graphene-sqlalchemy

MVC: support business logic layer

Aberta
#411 1 comentário 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Python
Estrelas
985
Forks
223
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

We have Model and View aka Node, but we lack a way to write code between them.

```Python
class PetBusinessLogic:
def __init__(self, pet):
self.pet = pet

@property
def name1(self):
return self.pet.name + "!"

@property
def name2(self):
return self.pet.name + "!"

class Pet(SQLAlchemyObjectType):
class Meta:
model = PetModel
name = "Pet"
interfaces = (relay.Node,)
batching = True

def resolve_name1(node, info):
# write here application logic code for a large project is not good idea.
# so we need some controller aka PetBusinessLogic
return PetBusinessLogic(node).name1 # DRY and I would like to initialize it once

def resolve_name2(node, info):
return PetBusinessLogic(node).name2 # DRY and I would like to initialize it once
```

Any suggestions for this design problem?
*(put this PetBusinessLogic into model is also bad idea)

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece pelo exemplo de SQLAlchemyObjectType e seus pontos de entrada resolve_name1 e resolve_name2. Revise como o Graphene-SQLAlchemy lida atualmente com resolvers e determine se uma camada de lógica de negócio se encaixa no projeto. Considera-se concluído quando houver um design acordado e um escopo documentado para dar suporte a esse padrão; a issue não nomeia arquivos nem testes.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
graphql, python, sqlalchemy
Domínio
api, backend-api-design
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
20/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.