Sobes.tech
Senior

È corretto usare lo stesso endpoint per aggiungere amici e visualizzare gli amici di un utente, ma con metodi diversi? Come funzionerà?

sobes.tech AI

Risposta dell'AI

Да, это нормальная практика в REST API — использовать один и тот же endpoint с разными HTTP-методами для разных операций. Например, для ресурса /friends:

  • GET /friends — получить список друзей пользователя.
  • POST /friends — добавить нового друга.

Такой подход соответствует принципам REST, где метод определяет действие, а URL — ресурс. Сервер различает запросы по методу и выполняет соответствующую логику. Это упрощает структуру API и делает её более предсказуемой.

Пример на Go с использованием net/http:

func friendsHandler(w http.ResponseWriter, r *http.Request) {
    switch r.Method {
    case http.MethodGet:
        // Логика получения друзей
        w.Write([]byte("Список друзей"))
    case http.MethodPost:
        // Логика добавления друга
        w.Write([]byte("Друг добавлен"))
    default:
        w.WriteHeader(http.StatusMethodNotAllowed)
    }
}

func main() {
    http.HandleFunc("/friends", friendsHandler)
    http.ListenAndServe(":8080", nil)
}