- Notifications
You must be signed in to change notification settings - Fork28
thinktecture/nodejs-aspnetcore-webapi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 ablog series.
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
- Node.js
- Usesoauth2-server for token generation
- ASP.NET Core 1.0
- UsesIdentityServer4
- Node.js
- 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 customersHTTP POST api/customer
: Creates a new customerHTTP 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)
totrue
here - Additionally Node.js supports MongoDB which can be switchedhere
- Default PostgreSQL settings:
- Host:
localhost
- Database name:
CustomerSampleNodejs
- Username:
CustomerSample
- Password:
CustomerSample
- Can be configured inserver/index.js
- Host:
- Switch the
- 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 inStartup.cs
- Host:
- Switch the comments within
- Node.js:
- The following methods are supported. All methods need a valid access token, otherwise it will return a
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.
For a general admin UI to create users and databases, you can usepgAdmin, which works on all platforms.
The easiest way to use PostgreSQL on Mac OS X is by installingPostgres.app. Then use the pgAdmin to create the user and databases as shown above.
To install PostgreSQL on Windows you can use a graphical installer which can be downloadedhere. 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.
To install MongoDB, head over to theofficial website, download and install it regarding their documentation.
MongoDB is currently not supported for ASP.NET Core 1.0 Web API project, yet.
- InstallNode.js > v5 .
- Execute
npm install
within the root of this repository to install all necessary dependencies. You will encounter somenpm err
ornpm warn
. That's okay, since this repository uses a lot beta versions. It will not break the application.
- ASP.NET 5.
- After installing ASP.NET 5 you need to execute
dnu restore
insrc/aspNetCore/STS
andsrc/aspNetCore/WebAPI
.
- STS: To start STS execute
node index.js
insrc/nodejs/STS
. It will then be accessible viahttp://localhost:5001
. - Web API: To start Web API execute
node index.js
insrc/nodejs/WebAPI
. It will then be accessible viahttp://localhost:5000
.
- STS: To start STS execute
dnx web
insrc/aspNetCore/STS
. It will then be accessible viahttp://localhost:5001
. - Web API: To start Web API execute
dnx web
insrc/aspNetCore/WebAPI
. It will then be accessible viahttp://localhost:5000
.
To start the Angular 2 Client, runnpm run watch
within the root of the repository. You can access the client viahttp://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. :-)
If you want to start the presentation yourself, you need to spin up a static http server (likenode-static) in thepresentation
directory.
This section contains notable third-party libraries.
- restify Used for Web API hosting.
- restify-cors-middleware An actually working middleware for handling cors in restify.
- swagger-restify Package for generating the swagger.json and hosting theswagger-ui.
- express Used for STS hosting.
- SequelizeJS Used to provide an ORM accessing the PostgreSQL database.
- EntityFramework7.Npgsql Allows using Entity Framework with PostgreSQL.
- IdentityServer4 Allows using a Identity Provider powered by IdentityServer4
- IdentityServer4.AccessTokenValidation Validates access tokens from IdentityServer4
- Swashbuckle.SwaggerGen Generates a swagger.json file
- Swashbuckle.SwaggerUi Shows the swagger-ui for a pretty view of swagger.json
- ppa-pawe: Added Node.js MongoDB support
About
This repository contains a sample showcasing Web APIs with Node.js compared to ASP.NET Core 1.0
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.