Kod yazmadan REST API hazırlamak

Hepimizin ihtiyacı olan basit bir şekilde REST API nasıl hazırlanır bakalım.Github üzerinde typicode tarafından hazırlanmış, testler yapmak için kullanabileceğimiz bir server aslında.
Database yerine json dosya kullanan bu kod JavaScript üzerinde çalışıyor.
Vermiş olduğumuz db.json içerisine kullanmak istediğimiz veri setini yerleştirmemiz yeterli. json-server , db.json dosyasını lowdb üzerinden kullanarak database gibi davranmasını sağlıyor.

Bunun için hazırlanmış Json-Server JavaScript üzerinden işlerimizi halleder durumda. 
Json-Server projesine burdan ulaşabilirsiniz https://github.com/typicode/json-server.
 Kurulumu gayet basit
Node.js yüklü makinede terminalde şu kodla kurabiliyoruz.

$ npm install -g json-server

Yükledikten sonra test için basit bir db.json yaratalım ve kaydedelim.

{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}

Ardından json-server’i çalıştıralım.

$ json-server --watch db.json

aşağıdaki ekran gibi localhost’ta 3000 portundan isteklerimizi dinleyen bir serverimiz olmuş oldu.

Artık tüm POST, PUT, PATCH or DELETE işlemelerimizi yapabileceğimiz REST API’miz çalışır durumda.

Yapabilceğimiz isteklerin bir kısmı

GET    /posts
GET /posts/1
POST /posts
PUT /posts/1
PATCH /posts/1
DELETE /posts/1
GET    /profile
POST /profile
PUT /profile
PATCH /profile
//Filter
GET /posts?title=json-server&author=typicode
GET /posts?id=1&id=2
GET /comments?author.name=typicode
//Paginate
GET /posts?_page=7
GET /posts?_page=7&_limit=20
//Sort
GET /posts?_sort=views&_order=asc
GET /posts/1/comments?_sort=votes&_order=asc
//Slice
GET /posts?_start=20&_end=30
GET /posts/1/comments?_start=20&_end=30
GET /posts/1/comments?_start=20&_limit=10

Bu yazıda localde çalıştırabileceğimiz REST API’yi hazırladık.Sadece kendi bilgisayarımız ve aynı networkde olduğumuz cihazlarda ulaşabileceğimiz bir servis hazırlamış olduk.Bu servisi global olarak ulaşabileceğimiz yazı bir sonraki yazının konusu olsun.