Serie: Einführung in den MEAN Stack
- Teil 1: Definition des MEAN Stacks
- Teil 2: Setup des MEAN Stacks
- Teil 3: Node.js
- Teil 4: npm
- Teil 5: Connect
- Teil 6: Express
- Teil 7: MongoDB
- Teil 8: Mongoose
- Teil 9: REST
- Teil 10: Baucis
- Teil 11: Bower
- Teil 12: AngularJS
- Teil 13: Restangular
Im heutigen Artikel wenden wir unser theoretisches Wissen über REST praktisch an. Zu diesem Zweck stelle ich Baucis vor, welches uns schnell und einfach eine vollständige REST API generiert.
Baucis ist ein Framework, welches das Konzept von REST auf Mongoose Schemas anwendet und diese als Express Middleware zur Verfügung stellt. Zuerst müsste ihr Baucis installieren. Die aktuellste Version zum Zeitpunkt des Schreibens ist 0.6.17:
$ npm install baucis
Die Benutzung von Baucis ist simpel. Ihr müsst lediglich ein Mongoose Schema zu einer URL zuweisen. Anschließend wird die REST API als Middleware über Express offen gelegt. Der Code sieht folgendermaßen aus:
var mongoose = require('mongoose');
var baucis = require('baucis');
var express = require('express');
mongoose.connect('mongodb://localhost:27017/todo-db');
var TodoSchema = new mongoose.Schema({
title: { type: String, default: '' },
completed: { type: Boolean, default: false }
});
mongoose.model('todo', TodoSchema);
baucis.rest({
singular: 'todo',
plural: 'todos'
});
express()
.use('/api', baucis())
.listen(1337, '127.0.0.1');
Als Schema definieren wir Todos bestehend aus einem String namens title
und einem Boolean namens completed
, der anzeigt, ob das Todo gelöst wurde oder nicht. Das Schema wird todo
genannt. Soweit gibt es keine Veränderung zum vorigen Beispiel außer das wir ein Feld mit dem Typ Boolean
verwenden, welches beim Anlegen eines neuen Todos automatisch false
ist. Anschließend wird über die Methode baucis.rest
die CRUD-Funktionalität auf das Schema todo
übertragen. Diese Methode nimmt ein Konfigurationsobjekt entgegen, dessen Wert für das Feld singular
exakt dem Namen des entsprechenden Schemas entsprechen muss. Der Wert für das Feld plural
wird eigentlich automatisch gesetzt und spielt bei der späteren URL für die REST API ein Rolle. Da Baucis in diesem Fall aus todo
fälschlicherweise den Plural todoes
macht, setze ich manuell die richtige Pluralform todos
.
Als einzige Middleware wird baucis()
verwendet, welche den Route-Prefix /api
erhält. Der Prefix ist frei wählbar, aber /api
ist ein häufig verwendeter Prefix für den Zugang zur REST API. Die Middleware baucis()
erlaubt es nun das vorher über baucis.rest
offengelegte Mongoose Schema über eine REST API zu steuern.
Ruft ihr nun http://127.0.0.1:1337/api/todos im Browser auf, erhaltet ihr ein leeres Array („[]“). todos
ist die vorher festgelegte Pluralform von todo
und das leere Array besagt, dass der Aufruf korrekt war, aber noch kein Dokument in der Collection todo
existiert. Mit dem Command Line Tool cURL könnt ihr schnell ein entsprechendes Dokument anlegen. Es ist unter Mac OS X vorinstalliert. Der Befehl lautet:
$ curl -X POST -H 'Content-Type: application/json' -d '{"title":"REST lernen"}' http://127.0.0.1:1337/api/todos
Ruft ihr nun http://127.0.0.1:1337/api/todos auf, so seht ihr das eben erstellte Todo:
Das Feld _id
wird automatisch von MongoDB gesetzt und das Feld __v
wird automatisch von Mongoose gesetzt. _id
werden wir gleich verwenden, um das Dokument zu manipulieren; __v
kann für diese Artikelserie ignoriert werden (siehe hier für mehr Informationen).
Mit der Methode PUT
und der _id
können wir unser Dokument aktualisieren. Beachtet das eure _id
vermutlich anders ist!
$ curl -X PUT -H 'Content-Type: application/json' -d '{"completed":"true"}' http://127.0.0.1:1337/api/todos/524989d90c67d4a135000001
Jetzt ist das Feld completed
auf true
gesetzt. Ihr könnt es gerne im Browser überprüfen. Mit folgendem Befehl kann das Todo komplett gelöscht werden.
$ curl -X DELETE http://127.0.0.1:1337/api/todos/524989d90c67d4a135000001
Glückwunsch! Ihr habt eine funktionierende REST API. Im nächsten Kapitel werden wir die letzten Vorbereitungen treffen, um anschließend einen Client für unsere Webapplikation mit AngularJS zu entwickeln.
Hiện nay, có rất nhiều trang thể thao bóng đá trực tuyến, nhưng đa số đều có những quảng cáo hoặc chất lượng ko cao hoặc phát lậu, Chúng tôi socolive với bản quyền trực tiếp phát sóng trực tiếp , hứa hẹn sẽ cung cấp cho các bạn những trận bóng đá hấp dẫn nhấtxem bóng đá trực tuyến
Kênh của chúng tôi luôn luôn thân thiện với tất cả mọi người, mitomcung cấp những trận đấu trực tiếp của Việt Nam và toàn cầu, với video Full HD , ko lag ko giật, đảm bảo cung cấp cho bạn những giây phút bóng đá tuyệt vời nhất
Được xem là một trang bóng đá hàng đầu Việt Nam, chúng tôi cung cấp cho khán giả tất cả các trận đấu , trực tiếp tại hiện trường, bạn có thể đón xem tất cả các giải đấu tại đây xoilac , nơi mà bạn có thể thỏa mãn niềm đam mê với bóng đá mà không lo bị dán đoạn vì chất lượng trang kém
Ở đây chúng tôi cung cấp những trận bóng hấp dẫn nhất , với hình ảnh sắc nét, trang web thân thiện với tất cả mọi người Việt Nam, hãy nhấn vào và đặt 90p lịch cho trận đấu mà bạn yêu thích nào