Sobes.tech
Senior

Оё хуб аст, ки барои илова кардани дӯстон ва тамошои дӯстони корбар як ва ҳамон endpoint истифода шавад, аммо бо усулҳои гуногун? Ин чӣ гуна кор мекунад?

sobes.tech AI

Ҷавоб аз 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)
}