Return generated model instances from connector operations
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- backend-api-design, tooling
Direção de pesquisa
Start with the CodefulSdkGenerator and the pinned managed connector contracts to trace how operation return annotations and JSON responses are currently emitted. Review the required serialization/deserialization coverage for nested models, collections, optional fields, and wire-name mappings. Done means affected clients return generated model instances where schemas exist, preserve other response behaviors, pass the stated tests, and match the paired generator revision.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
Generated connector clients expose response model classes, but operation methods currently deserialize JSON responses to weak dictionary types. For example, Office365Client.get_emails_async returns dict[str, Any] | None rather than an instance of its generated response model. This prevents callers and documentation from relying on typed response properties.
Identified in PR #89 review.
Proposed work
- Update the CodefulSdkGenerator to emit precise operation return annotations when the managed connector contract defines a response schema.
- Deserialize JSON responses into the corresponding generated model classes, including nested models, collections, optional fields, and wire-name mappings.
- Preserve dictionary, binary, text, and empty-response behavior when no generated response model applies.
- Regenerate affected connector clients from pinned contracts and link the paired AzureUX-BPM generator PR.
- Update API documentation after typed responses are available.
Acceptance criteria
- Connector operations with modeled response schemas return generated model instances rather than
dict[str, Any]. - Return annotations distinguish modeled, unmodeled, binary, text, and no-content responses.
- Serialization/deserialization tests cover nested objects, collections, optional fields, and wire-name mappings.
- Existing connector behavior remains compatible for responses without modeled schemas.
- Generated artifacts match the paired generator revision.
- Linguagem predominante
- Python
- Estrelas
- 0
- Forks
- 3
- Merge médio
- 4d 16h
- PRs com merge (30d)
- 12
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Azure/connectors-python-sdk
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
Azure/connectors-python-sdk#91 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de Azure/connectors-python-sdk
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
NVIDIA/earth2studio#1241 ·
Mantenedores costumam responder em até 3 dias
-
docs(types): update the collection binding note now that typed collections shipped in pycubrid 1.9.0Abertadocumentation priority: low size: S
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
cubrid-lab/sqlalchemy-cubrid#768 ·
Mantenedores costumam responder em até 1 dia
-
bug help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Broken link in index.rstAbertadocumentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
ansys/pydpf-core#3547 ·
Mantenedores costumam responder em até 1 dia
-
good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
OktoLabsAI/okto-pulse#114 ·
Mantenedores costumam responder em até 1 dia