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

Offen Anfängerfreundlich
#1,679 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
62/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
java
Bereich
api

Rechercherichtung

Der Fehler liegt in der Deserialisierung von ListRecord.LinkField: Seine Felder verwenden snake_case-Namen, während slackLists.items.list camelCase-Schlüssel zurückgibt. Beginne in der Klasse LinkField des Modells und prüfe, welche @SerializedName-Annotationen sie hat, und reproduziere dann mit einer JSON-Fixture, die originalUrl und displayName enthält. Fertig ist es, wenn getOriginalUrl() und getDisplayName() die Werte aus der Fixture zurückgeben und die bestehende Request-Struktur für create/update weiterhin als snake_case serialisiert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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
Vorherrschende Sprache
Java
Sterne
602
Forks
239
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
18

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus slackapi/java-slack-sdk

Alle Issues in slackapi/java-slack-sdk

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.