Dove dovrei inserire le chiavi API di discourse in modo da poter recuperare i post?

Sto cercando di recuperare i post del mio discourse ma non so dove inserire le mie chiavi API. Sto provando a fare una richiesta a: https://{defaultHost}/posts/{id}.json ma mi dà errore perché non ho inserito le chiavi API, ma dove dovrei inserirle?

Non sono sicuro di come stai effettuando le tue richieste API (quale strumento o linguaggio di programmazione), ma la chiave API e il nome utente vanno nell’intestazione HTTP.

Ecco un esempio di curl da Discourse REST API Documentation

curl -X POST "http://127.0.0.1:3000/categories" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1" \
-F "name=89853c20-4409-e91a-a8ea-f6cdff96aaaa" \
-F "color=49d9e9" \
-F "text_color=f0fcfd"
2 Mi Piace

Lo sto facendo in Next.js. Dove dovrei inserire quel codice?

Non ho familiarità con nextJS, quindi non sono del tutto sicuro, ma sembra che nextJS utilizzi uno strumento chiamato SWR per effettuare richieste API

Devi fare MOLTA attenzione all’ambito della chiave API che stai memorizzando lato client e a quali chiamate API effettui a Discourse in modo da non esporre la tua chiave API globale agli utenti, poiché sembra che nextJS sia un framework lato client anziché lato server. Il modo corretto è probabilmente far sì che next.js effettui una richiesta API lato server che poi effettui una chiamata API autenticata alla tua istanza Discourse.

Questa risposta potrebbe esserti d’aiuto:

Come da documentazione Arguments – SWR dovresti fare

const fetcher = (url, token) =>
    axios
      .get(url, { headers: { Authorization: "Bearer " + token } })
      .then((res) => res.data);
const { data, error } = useSWR(
  [`http://localhost:8000/api/v1/users/get-avatar`, auth.token],
  fetcher
);
if (error) console.log(error);
if (data) console.log(data);
1 Mi Piace