500 o 400 durante l'aggiornamento del contenuto di un post tramite API

Sto cercando di aggiornare il contenuto di un post tramite l’API. La documentazione all’indirizzo Discourse API Docs indica che dovrei usare PUT /posts/:id.json inviando post[raw] come corpo della richiesta.

Questo mi restituisce un errore 400 con il messaggio:

errors: [ 'param is missing or the value is empty: post' ]

L’errore lamenta la mancanza di un parametro chiamato post, ma sostituendo post[raw] con post nella mia richiesta HTTP ottengo una risposta 500 Internal Server Error.

Il contenuto del post era semplicemente Edited comment, quindi non credo che il problema sia legato al contenuto.

Mi sto perdendo qualcosa? Le API sono obsolete?

Sto eseguendo un’istanza cloud all’indirizzo https://forums.balena.io. Non sono sicuro della versione di Discourse in uso.

I just realised I was passing a topic id instead of a post id to the API, but the problem still persists. I’m trying to update post 34816, assuming you have access to the cloud instance:

PUT https://forums.balena.io/posts/34816.json

With body:

{
    "post": "Edited comment"
}

And that still results in 500.

Why is my post being flagged as spam? Is this not the right place to submit bugs?

Turns out it works fine if I pass raw instead of post in the request body. The docs could probably be clearer about that :slight_smile:

Glad you got it figured out! I’ve got a bunch of topics that are me taking to myself.

Mostly these are the docs, and they are continually updated: How to reverse engineer the Discourse API :wink:

I generally forget that there are any docs besides just seeing how it works in the browser development tools.