graphql-python / graphql-python/graphene-sqlalchemy
MVC: support business logic layer
- 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
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