Implement a http server with RESTful http API - json

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.

Related

SpringBoot-MySQL or ExpressJS-MongoDB which one is best for building rest API of online BookStore?

How are you all? I'm a beginner with the web programming. I am planning to develop my personal e-commerce Bookstore for myself. I've basic knowledge of ReactJS, ExpressJS, Spring MVC, MongoDB, and Mysql. I've already done some basic project in ReactJS, Spring MVC-MySQL and Express-MongoDB like Personal Diary, Cost management system, School management system etc. My future plan is to build a native mobile app for this Bookstore. I am a little bit confused to select the language and framework. I've some question and need experts opinion and suggestion like you.
ReactJS or NextJS(Server Side Rendering), which one will best for the frontend of this Bookstore?
Do I have any possibility to face any problem in SEO in the SPA?
Which Framework and Database will best for building the backend for better performance and lower hosting cost?
By using that backend service, can I use the same API endpoint to build a native app?
Any alternative technology to develop the bookstore?
Thank you all in advance.
-ReactJS has a vibrant and big community, so you would find plenty of support
-As far as i understand type of language for the front-end or SPA's shouldn't affect your SEO
-Java is rock solid, battle tested whereas NodeJs is new and a lot of experiments still going around it. Although it is claimed to be faster and easier to work with.
-Cost ? the cheapest would be PHP Apache shared hosting. Java and or JavaScript will both cost almost the same on platforms like heroku or digital ocean.
-Yes you should be able to build native apps using the same endpoints.
-With what you know do not look for alternate technologies. (What you have is more than enough)
-Moral of the story - If you are alone doing everything, JavaScript can save you a lot of time and effort. (Building web-apps, hybrid mobiles apps and server side APIs, all using JavaScript), however if you choose Java for server side, that knowledge may help you build a native android app and then you will need to learn Swift for a native IOS app and JavaScript anyway for web apps.
Everything boils down to what you are doing and how you are doing it.
All the best!

Node.js + Framework for RESTFul API

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/

How to use Breeze Js with DevForce services

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.

Is there any publicly available RESTful services that can be used for testing

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

Interface for databasing tweets?

I have just started a new project and step one is to go and collect a bunch of information. For this first step I need a script that takes a twitter username. The program will then grab the last five posts from the user, and place them into a database, preferably as a JSON file.
I have been looking into Twitter4J, and the Streaming API. While I feel these are both good resources that are very robust and contain a lot of functionality. I am struggling to find anything that just gives me a simple start. Ideally a step by step, get one post as text, kind of tutorial would be ideal, and then I can dive into the docs and find the modules I need and so on.
So is there any tutorials or lightweight frameworks that one may know of? I am open to any language, and any suggestions. Thanks in advance, and for taking the time to read through this!
TL;DR. Need a lightweight framework that handles twitter, or a link a beginner Twitter API tutorial.
If your interested in a good PHP framework and want an easier way to work with the Streaming API, I would highly recommend looking at the 140 server. It's a framework to start with rather then to integrate later, and it looks like your just starting out so it may be a good choice. Using the streaming API you can open up a firehose with your queries and items will be pushed to you. This definitely looks to be the right choice for your use case.
Also, since you now have the link to the server, take a look through the rest of this site. I don't think you'll find a better resource for Twitter tutorials and resources.
If your looking for something much simpler, and want to get your feet wet from the beginning with Twitter and if you've never worked with RESTful API's, take an additional look at the following.
Here is an article about integrating RESTful services with CI. Codeigniter is a nice PHP framework to start with and has a lot of resourceful documentation, The example they use in the tutorial is actually Twitter which is nice.
http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/
Here is a more general article about the Twitter RESTful API
http://www.ibm.com/developerworks/xml/library/x-twitterREST/
and finally if your going with CI, have a look at this library that will make things that much easier. Especially if your working with oAuth and such. It basically abstracts the whole twitter API (less streaming) into easy to use CI calls.
. . and if you don't want to use the streaming API, for your use case, your going to want to cache the tweets. I don't know any specifically great articles for this, but it's a pretty popular method and should be easy to search for. You do this because the API is rate limited in most cases.