🔤
REST Fundamentals

HTTP Methods Deep Dive

GET, POST, PUT, PATCH, DELETE
💡 HTTP METHODS, EK POST OFFICE ke DIFFERENT SERVICES jaise hain — GET (LETTER PADHNA, KUCH CHANGE NAHI hota), POST (NAYA PACKAGE BHEJNA), PUT (POORA PACKAGE, NAYE SE, REPLACE karna), PATCH (PACKAGE mein, SIRF EK ITEM, CHANGE karna), DELETE (PACKAGE, WAAPAS MANGWANA/HATANA).

GET, DATA FETCH karta hai — SAFE (NO SIDE EFFECTS) aur IDEMPOTENT (BAAR-BAAR CALL karne SE, SAME RESULT). POST, NAYA RESOURCE CREATE karta hai — NA SAFE, NA IDEMPOTENT (HAR CALL, EK NAYA RESOURCE BANA SAKTA hai). PUT, EK RESOURCE ko, POORI TARAH, REPLACE karta hai — IDEMPOTENT (BAAR-BAAR CALL karo, RESULT SAME rahega).

PATCH, EK RESOURCE ko, PARTIALLY, UPDATE karta hai (SIRF, SPECIFIED FIELDS) — TYPICALLY, IDEMPOTENT NAHI MAANA jaata (DEPENDS on IMPLEMENTATION). DELETE, EK RESOURCE ko, REMOVE karta hai — IDEMPOTENT (EK BAAR DELETE, DOBARA DELETE, SAME RESULT — RESOURCE ABSENT).

@RestController
@RequestMapping("/api/products")
public class ProductController {
    @GetMapping("/{id}")
    public Product getProduct(@PathVariable Long id) { }      // SAFE, idempotent

    @PostMapping
    public Product createProduct(@RequestBody ProductDto dto) { } // NOT idempotent

    @PutMapping("/{id}")
    public Product replaceProduct(@PathVariable Long id, @RequestBody ProductDto dto) { } // idempotent

    @PatchMapping("/{id}")
    public Product updateProduct(@PathVariable Long id, @RequestBody Map<String, Object> updates) { } // partial update

    @DeleteMapping("/{id}")
    public void deleteProduct(@PathVariable Long id) { }       // idempotent
}
🔤
HTTP METHODS, EK POST OFFICE ke DIFFERENT SERVICES jaise hain — GET (LETTER PADHNA, KUCH CHANGE NAHI hota), POST (NAYA PACKAGE BHEJNA), PUT (POORA PACKAGE, NAYE SE, REPLACE karna), PATCH (PACKAGE mein, SIRF EK ITEM, CHANGE karna), DELETE (PACKAGE, WAAPAS MANGWANA/HATANA).
1 / 2
⚡ Quick Recap
  • GET/PUT/DELETE = idempotent, POST = NOT idempotent
  • GET = safe (no side effects), baaki, side effects HAVE karte hain
  • PATCH = partial update, PUT = full replacement
Is page mein (2 subtopics)

HAR BAAR, JAB, EK POST REQUEST, "CREATE ORDER" ke liye, BHEJI JAATI hai, EK NAYA, DIFFERENT, ORDER, BAN SAKTA hai — ISLIYE, POST, IDEMPOTENT NAHI hai. Isi WAJAH SE, IDEMPOTENCY KEYS (jaise, PAYMENT APIs mein), POST OPERATIONS ke liye, IMPORTANT ban jaate hain.

💡Tip: SAFE, MATLAB, "SERVER-SIDE STATE, CHANGE NAHI HOTA" — SIRF, GET aur HEAD, "SAFE" METHODS hain, BAAKI SAB, POTENTIALLY, STATE CHANGE karte hain.

HEAD, GET jaisa hai, LEKIN, RESPONSE BODY, RETURN NAHI karta — SIRF, HEADERS, RETURN karta hai (jaise, RESOURCE EXISTS karta hai YA NAHI, CHECK karne ke liye, TEZ WAY). OPTIONS, EK RESOURCE PAR, KAUN SE, HTTP METHODS, ALLOWED HAIN, YE, DISCOVER karne ke liye, USE hota hai (CORS PREFLIGHT REQUESTS mein, COMMON).

  • HEAD = GET jaisa, LEKIN, BODY ke BINA — resource existence check karne ke liye
  • OPTIONS = allowed methods, discover karne ke liye — CORS preflight mein, COMMON