2016-12-23 3 views
1

Ich habe angefangen, an einer neuen Anwendung zu arbeiten, bei der das Backend nichts anderes als eine REST API sein wird. Ich bin ziemlich neu bei Node, also habe ich mit Express angefangen. Ich bin immer noch in einem sehr frühen Stadium, also suche ich nach Vorschlägen für den richtigen Rahmen.Beste knotenbasierte Architektur für RESTful API?

Ich habe Express, Koa, HAPI, LoopBack und Restify angeschaut. Ich mag Restify, aber es scheint nicht die beliebteste Option da draußen zu sein. Ich mag auch das Aussehen von LoopBack.

Ich würde gerne Swagger/OpenAPI in irgendeiner Form verwenden, um meine API zu dokumentieren. Ich habe eine Reihe von Modulen für Express gesehen, die auch von anderen modifiziert wurden, um mit Restify zu arbeiten.

Irgendwelche Vorschläge? Vielen Dank!

Antwort

0

Es gibt eine Tonne von Unterstützung für Express, aber Sie können ziemlich viel zusammen alle Sachen zusammenbauen, die Sie verwenden möchten. Ich benutze gerne das knoten-mysql Knotenmodul, so dass ich mysql im Backend verwenden kann. Ich erstelle ehrlich gesagt nur meine eigenen APIs. Sie sind wirklich einfach zu bauen. Sie definieren Ihre Routen einfach in einer js-Datei und definieren dann die Funktionen zum Abrufen, Veröffentlichen und Löschen für jeden Endpunkt. Ich hoffe das hilft.

EDIT: Hier ist ein Tutorial zum Erstellen einer REST-API mit NodeJS, Express und MySQL. Das bringt Sie in weniger als ein paar Stunden auf Touren, wenn Sie wissen, was Sie mit Javascript machen.

http://www.yogasaikrishna.com/simple-restful-api-using-nodejs-express-and-mysql/

0

Ich würde halten mit ausdrücklicher gehen vor allem, wenn Sie Knoten neu sind. Es hat viele documentation, ist unglaublich flexibel und wird aktiv gepflegt. Mit Express können Sie CRUD einfach nutzen und mit und mit JSON antworten. Es enthält einen Router, der es beispielsweise einfacher macht, Routen mit etwas wie/api/v1 zu versehen und Middleware für bestimmte Teile Ihrer App zu integrieren, wodurch es einfacher wird, mehrere Versionen einer API auf einem Server zu verwalten. Ein einfaches Echo Routen ist so einfach wie:

var express = require('express') 
var bodyParser = require('body-parser') 

var app = express() 
router = express.Router() 
// Use middleware to parse JSON request body 
router.use(bodyParser.json()) 

// prefix router with /api/v1/router 
app.use('/api/v1', router) 

// /api/v1/echo route 
router.post('/echo', function(req, res) { 
    // read the property message from the request body 
    var message = req.body.message 

    // check if message from request body is not null 
    // if it it not, respond with a status of 200 and 
    // send message back to client. 
    // if message was null, respond with a status of 
    // 400 (bad request) with an object containing 
    // an error property indicating the request body is 
    // missing the message property 
    if(message) 
     res.status(200).send({ 
      message: message 
     }) 
    else 
     res.status(400).send({ 
      errors: 'No message property in request body.' 
     }) 
}) 

app.listen(3000, function(err) { 
    if(err) 
     return console.error(err) 

    console.log('Server listening at http://localhost:3000/') 
}) 
0

Ich habe gehört, dass sails.js ein sehr leistungsfähiges cli hat, die Ihre Routen und läuft sehr schnell bekommen kann.

Ich persönlich mag Express, weil die Mehrheit der Menschen es verwenden und wenn Sie Express lernen, dann werden Sie in der Lage sein, viele andere Entwickler API-Code ziemlich leicht zu lesen. Sobald Sie Express lernen, möchten Sie vielleicht mit anderen Frameworks experimentieren, aber bis dahin würde ich nur Express verwenden.

Ich habe gehört, dass es auch Frameworks gibt, die sich auf Sicherheit konzentrieren. Wenn Sie eine Neigung zu Sicherheitspraktiken haben, sollten Sie sich das genauer ansehen.

Socket.io ist ziemlich beeindruckend und ermöglicht es Ihnen, Updates auf einem Server in Echtzeit zu sehen. Und Hapi.js scheint die populärste zu sein. Ich habe nur mit Express durcheinander gebracht, und spielte ein wenig mit Socket.io, aber ich würde definitiv sowohl Express und Socket.io

lernen