slackLists.items.list: LinkField originalUrl/displayName are always null (response uses camelCase keys)

Aberta Para iniciantes
#1,679 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
62/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
java
Domínio
api

Direção de pesquisa

O bug está na desserialização de ListRecord.LinkField: os campos dele usam nomes em snake_case, enquanto slackLists.items.list retorna chaves em camelCase. Comece na classe LinkField do modelo e verifique quais anotações @SerializedName ela tem; depois reproduza com uma fixture JSON contendo originalUrl e displayName. Está pronto quando getOriginalUrl() e getDisplayName() retornarem os valores da fixture e o formato atual da requisição de create/update continuar serializando em snake_case.

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

Descrição

Summary

slackLists.items.list returns link cells with camelCase keys (originalUrl, displayAsUrl, displayName), but ListRecord.LinkField is deserialized with the SDK's snake_case naming, so it expects original_url, display_as_url and display_name. As a result, every LinkField read back from a list has originalUrl == null and displayName == null.

Writing works: slackLists.items.create and slackLists.items.update accept the snake_case request shape that the SDK sends.

Reproduce
  1. Create a list with a link column and add a row whose link cell has original_url and display_name (through the SDK).
  2. Call slackLists.items.list through MethodsClient#slackListsItemsList.
  3. For the link field of the row: field.getLink().get(0).getOriginalUrl() is null. field.getValue() holds the link as JSON with camelCase keys, for example:
{"originalUrl":"https://github.com/org/repo/pull/7","attachment":{},"displayAsUrl":false,"displayName":"repo#7"}
Expected

getOriginalUrl() and getDisplayName() return the values Slack sent, for example with @SerializedName(value = "original_url", alternate = "originalUrl") on the LinkField fields.

Versions
  • com.slack.api:slack-api-client and slack-api-model 1.51.0
  • Java 25
Linguagem predominante
Java
Estrelas
602
Forks
239
Merge médio
1d 8h
PRs com merge (30d)
18

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de slackapi/java-slack-sdk

Todas as issues de slackapi/java-slack-sdk

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

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