I'm new to Node so maybe someone can help me in this decision, I want to create RESTFul API that are accessible from a web site and from mobile application returning JSON response.
I have decided to use the same API for the website and for the mobile applications for a maintain purpose, I went from a disastrous platform where the two logic part were separated. Also I want to use only RESTFul API without session for a scalability purpose, using an OAuth2 authentication and maybe Memcache to serve same JSON response thanks to the hash algorithm used.
I begin with Node+Express.js+MongoDB for the backend, but I have noticed that Express come with a lot of package to control and use cookie, template engine and so on...
So my question is: Express.js is the right package for my purpose? Or is better to not use this Framework? In your opinion what is the best way to achieve speed of access and speed of serving without any type of session and without any type of cookie?
I developed some RESTful APIs with Express. The good thing about Express is that you don`t need to use all the additional stuff like session handling and template engines.
In addition there are some really good modules that enables you to set up an API very fast.
For example if you are using mongoose have a look at Baucis.
If you still feel uncomfortable with Express, there are many other node.js frameworks for building RESTful APIs. Maybe give Restify a try?
Restify is somehow like a specialized version of Express, so it is really easy to migrate existing code.
You can go for Strongloop as well. Strongloop is a wrapper on express, but it has many features which makes it very powerful for building RESTful APIs.Please check this link https://strongloop.com/
Related
I've started to learn backend development, focus on http server mainly.
But I'm really new to this, so it's a little out of focus for me, and I could really use some advice.
For example, if I try to implement something like this
A http server runs on linux/Windows
A private REST API which allows to POST a json object, plus a login mechanism, so only authorised user can do the POST.
Implement a public REST API which allows to GET the same json object
And here is my question:
Can I use Nodejs and express to implement all these? I also know little about them.
Do I need a Database to implement the login mechanism?
Is there any similar tutorial or best practise I can study from?
Regards
Ben
Yes, you can use NodeJS for this.
Not necessarily. You just need a way to authorise users. Most common is to use a database to store a username/email and password, but you could also look into using a third-party service for this, for example facebook or google
Yes, there is a lot of tutorials and especially best practices on this subject. Your question is too broad to link relevant material, but some terms you can use to google this yourself is "nodejs rest api" "rest api best practice". Passport.js is a good place to start for getting into authorising users. For REST-api, the closer you get to normal web standards, the better - Especially if other people than you are going to consume the api.
Node.js is a run-time environment/framework/platform for developing non-blocking I/O server side processes, services, or RESTful API's. You can start by learning what Node.js can do before you go on developing a login story and, and a restful endpoint here
Next if you intend to go all the way and learn full-stack web development start from here, This will guide you to learn Node.js , Express.js, Mongodb, and finally Angular.js for front-end. Good luck and happy coding
Yes, you can use Node.js and Express.js. I recomend you to read some articles about REST and TDD from this amazing blog, especialy this or this.
We have project developed in Silverlight/DevForce services, currently we plain to move code into HTML5. My question is it possible to reuse server side part of project, I means is it possible to reuse DevForce services or better migrate to WebAPI services? IdeaBlade has Breeze Js for HTML5, but it looks more as dataservice provider and not support DevForce services.
You might be asking whether BreezeJS offers a mechanism for handling arbitrary service calls between the client and the Web API running on the server ... in the manner of the DevForce "invokeServerMethod".
BreezeJS does not . The DevForce "invokeServerMethod" is helpful when you need to talk to the server for non-data reasons. You don't have to open and secure your own channel; instead you can share the DevForce secure data channel between client and server. It's also a convenient way to sent a package of entities. Setting up your own independent channel is not much fun.
But writing and communicating with a Web API service endpoint is much easier. Our thought is that you can manage your non-data communications quite well without the help of the BreezeJS EntityManager. So we don't see the need to implement the equivalent of "invokeServerMethod"
However, perhaps you have a scenario that would cause us to reconsider. We'd love to learn more.
Breeze doesn't integrate with DevForce today. I'd recommend adding the request to the Breeze UserVoice site. The Breeze team uses UserVoice to judge interest when incorporating new features.
A quick look shows me that there is already one DevForce related suggestion there: Support for DevForce models.
Does anyone know of any publicly available RESTful services that can be used for testing. I'm not talking about software or browsers extensions. Just an online service that I can CRUD json data with using javascript. I'm testing a JS library's rest api and there's only so much I can do with static json data.
I'm guessing there's no such thing due to what's involved but I thought I would ask.
if you just want to practice 'gets' you can use cloudant as you can sign up for free. however, there are restrictions on adding new documents from a cross domain ajax call. I recommend running one locally. I use couchDB very quick, very easy.
You can use the google feed api and pass in any rss url to test .
This may help you.
http://code.google.com/apis/feed/v1/reference.html#resultJson
I want to build a WCF Server with MySQL Database which can communicate with differents Clients on differents OS. Is that Possible?
if Yes, how should i go? any tutorials which can help me?
Cheers
Is that Possible?
Yes, interoperability was one of the main concerns of the WCF designers.
how should i go?
There are so many options you need to consider, for example security, reliability...
But mainly basicHttpBinding is probably the most interoperable SOAP-based binding. Just google for samples of basicHttpBinding.
On another account, the most interoperable WCF approach is WCF REST which can allow use of JSON that any client can understand, even the browser. However, implementation of WCF REST has quite a few design problems (outside scope of this question) and I would suggest using ASP NET MVC to implement passing JSON objects over HTTP. For security, you can use HTTPS.
I would like to know, what are the ways a web framework may be suitable for designing a RESTful app, in general.
One goal is for example to provide http request routing, so they are automatically sent to appropriate controllers. From architectural point of view, web framework based on MVC pattern are more suitable for REST.
What other features of web frameworks are helpful by building apps satisfying the REST constraints?
Is there any reason why you consider certain languages(python/java) or web frameworks(django/turbogears/jersey/restlets/...) as the most applicable ones?
I think the best way for a web framework to support a RESTful style is to automatically map the different HTTP verbs (GET, POST, PUT, DELETE, etc.) to corresponding methods on its controllers/request handlers. Most modern Python web frameworks do this out of the box, with the notable exception of Django (unless I missed a dramatic change).
a) You need very flexible routing.
b) You need to be able to easily generate links that correlate to resource controllers using templates and parameters.
c) The server should help you to parse all the http headers. e.g. Authorization headers, Accept headers, language headers, cookies, etags.
d) It should support serializing and deserializing all the commonly used mime types.
e) It should help parsing parameters from incoming URLs
f) It should help resolving relative urls based on the request url and any available BaseURL.
There are few ways that a web framework can NOT support REST. Its basically written with the HTTP model in mind; so just about any web framework works. The automatic routing you mention is a common expectation, but not strictly required for REST.
I would stress the ability to directly support definition of resources. In Ruby on RAils you can define a resource through scaffolding and you get a model with controller with restful verbs implemented also with views and support for different formats and readily avalaible views and routing with ids.
Aside from that having access to HTTP and supporting principles of HTTP is what you need.
I am not experienced enough to know about support in frameworks, but it would be also nice to have support for the caching and other request options.
On the “specific software recommendation” front, I've had people recommend Apache CXF as a framework for building RESTful services with Java. It appears to be even able to simultaneously support SOAP (which happens to be very useful for helping some of our customer base adopt the software). I'm still in the experimenting-with-it stage though, so you may be able to do better.