Giter Club home page Giter Club logo

nodejs-aspnetcore-webapi's Introduction

Node.js Web API for .NET developers

This repository contains a Web API sample built with Node.js and ASP.NET Core 1.0. A Angular 2 client is used to communicate with the APIs. A lot of things in this repo are covered by a blog series.

Projects

Both Node.js and ASP.NET Core 1.0 APIs are split into two projects:

  • STS: Contains a Secure Token Service, which can generate and validate access tokens
  • Web API: Contains a Web API for manipulating customers.
    • The following methods are supported. All methods need a valid access token, otherwise it will return a 401 Unauthorized.
      • HTTP GET api/customer/list: Returns a list of all customers
      • HTTP POST api/customer: Creates a new customer
      • HTTP DELETE api/customer/{id}: Removes a customer
    • Swagger support via http://localhost:5000/swagger
    • Both project can either use an InMemory storage or a PostgreSQL backend. Per default, they use PostgreSQL.
      • Node.js:
        • Switch the service.configure(false) to true here
        • Additionally Node.js supports MongoDB which can be switched here
        • Default PostgreSQL settings:
          • Host: localhost
          • Database name: CustomerSampleNodejs
          • Username: CustomerSample
          • Password: CustomerSample
          • Can be configured in server/index.js
      • ASP.NET Core 1.0:
        • Switch the comments within ConfigureDI here
        • Default PostgreSQL settings:
          • Host: localhost
          • Database name: CustomerSampleVNext
          • Username: CustomerSample
          • Password: CUstomerSample
          • Can be configured in Startup.cs

You can either start both projects as Node.js or as ASP.NET Core 1.0. They won't work together, so you can not use Node.js STS and ASP.NET Core 1.0 Web API.

Setup

PostgreSQL

For a general admin UI to create users and databases, you can use pgAdmin, which works on all platforms.

OS X

The easiest way to use PostgreSQL on Mac OS X is by installing Postgres.app. Then use the pgAdmin to create the user and databases as shown above.

Windows

To install PostgreSQL on Windows you can use a graphical installer which can be downloaded here. It comes with pgAdmin, so you don't need to install it separately. After installation use pgAdmin to create the user and databases as shown above.

MongoDB

To install MongoDB, head over to the official website, download and install it regarding their documentation.

MongoDB is currently not supported for ASP.NET Core 1.0 Web API project, yet.

Node.js

  • Install Node.js > v5 .
  • Execute npm install within the root of this repository to install all necessary dependencies. You will encounter some npm err or npm warn. That's okay, since this repository uses a lot beta versions. It will not break the application.

ASP.NET Core 1.0

  • ASP.NET 5.
  • After installing ASP.NET 5 you need to execute dnu restore in src/aspNetCore/STS and src/aspNetCore/WebAPI.

Starting

Node.js

  • STS: To start STS execute node index.js in src/nodejs/STS. It will then be accessible via http://localhost:5001.
  • Web API: To start Web API execute node index.js in src/nodejs/WebAPI. It will then be accessible via http://localhost:5000.

ASP.NET Core 1.0

  • STS: To start STS execute dnx web in src/aspNetCore/STS. It will then be accessible via http://localhost:5001.
  • Web API: To start Web API execute dnx web in src/aspNetCore/WebAPI. It will then be accessible via http://localhost:5000.

Angular 2 Client

To start the Angular 2 Client, run npm run watch within the root of the repository. You can access the client via http://localhost:8000. The credentials are

  • Username: bob
  • Password: bob

Since both backends lack a support for user management, those credentials are the only one which are working. :-)

Presentation

If you want to start the presentation yourself, you need to spin up a static http server (like node-static) in the presentation directory.

Third-Party Libraries

This section contains notable third-party libraries.

General

Node.js

ASP.NET Core 1.0

Angular 2 Client

Contributors

  • ppa-pawe: Added Node.js MongoDB support

Additional resources

nodejs-aspnetcore-webapi's People

Contributors

manuelrauber avatar ppa-pawe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.