REST (Representational State Transfer) : Yukarıdaki resimde görüleceği üzere IoT/App uygulamalarımızın hepsinin bir yerle iletişime geçip oradan veri alıp kullanma sürecinde biz REST API'leri kullanıyoruz.
Aşağıda REST için isimlendirmeler vardır bunların hepsi aynı anlama geliyor.
En üstteki resimde görüleceği üzere biz JSON/XML şeklinde REST Server'dan verileri alıyoruz.
JSON Nedir ?
Javascript Object Notation olarak bilinir ve verilerimizi üzerinde depolamak ve değişitrmek için kullandığımız basit bir veri formatıdır.
{
"id":14,
"firstName":"Minter",
"lastName":"Coder"
}
Spring Boot REST HTTP Basics
Şimdi biz en üstteki resimde gördüğümüz üzere HTTP Request ve HTTP Response şeklinde olaylarımız gerçekleşir.
Normalde biz HTTP istekleri üzerinden karşı tarafta gerçekleşecek süreçleri belirtiriz.
HTTP Methodları
POST : Yeni bir entity eklemek istediğimizde kullanırız.
GET : Bir entity almak yada bütün entitiyleri almak istediğimizde kullanırız.
PUT : Var olan bir entity güncellemek istediğimizde kullanırız.
DELETE : Var olan bir entity silmek için kullanırız.
HTTP Request
Request Line : HTTP Komutunu belirtir.
Header Variables : HTTP isteğindeki Header(başlıkları) belirtir.
Message Body : Gidecek mesajın gövdesidir ve içerikleri barındırır.
HTTP Response
Response Line : Server protocolünü ve status code'sini döner.
Header Variables : HTTP responsede bulunan Header (başlıkları) belirtir.
Message Body : Gönderilen mesajın gövdesidir ve içerikleri barındırır.
HTTP Status Codes
- 100-199 Bilgi yollamak için kullanılır.
- 200-299 Başarılı bir dönüş olduğunu belirtir.
- 300-399 Yönlendirme olduğunu belirtir.
- 400-499 Client tarafında hata olduğunu belirtir.
- 500-599 Server tarafında hata olduğunu belirtir.
MIME Content Types
Yollanılan yada alınan mesaj formatı MIME content type ile açıklanır.
- Multipurpose Internet Mail-Extension
Basit olarak syntaxı şu şekildedir:
- type/sub-type
Örnekler:
- text/html
- text/plain
- application/json
- application/xml