croninsw / BangazonAPI

Web API build for Bangazon Back End Course at NSS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Building the Bangazon Platform API

Welcome, new Bangazonians!

Your job is to build out a .NET Web API that makes each resource in the Bangazon ERD available to application developers throughout the entire company.

  1. Products
  2. Product types
  3. Customers
  4. Orders
  5. Payment types
  6. Employees
  7. Computers
  8. Training programs
  9. Departments

Pro tip: You do not need to make a Controller for the join tables, because those aren't resources.

Your product owner will provide you with a prioritized backlog of features for you to work on over the development sprint. The first version of the API will be completely open since we have not determined which authentication method we want to use yet.

The only restriction on the API is that only requests from the www.bangazon.com domain should be allowed. Requests from that domain should be able to access every resource, and perform any operation a resource.

Plan

First, you need to plan. Your team needs to come to a consensus about the Bangazon ERD design. Once you feel you have consensus, you must get it approved by your manager before you begin writing code for the API.

Modeling

Next, you need to author the Models needed for your API. Make sure that each model has the approprate foreign key relationship defined on it, either with a custom type or an List<T> to store many related things. The boilerplate code shows you one example - the relationship between Order and OrderProduct, which is 1 -> ∞. For every OrderId, it can be stored in the OrderProduct table many times.

Database Management

You will be using the Official Bangazon SQL file to create your database. Create the database using SSMS, create a new SQL script for that database, copy the contents of the SQL file into your script, and then execute it.

Controllers

Now it's time to build the controllers that handle GET, POST, PUT, and DELETE operations on each resource. Make sure you read, and understand, the requirements in the issue tickets to you can use SQL to return the correct data structure to client requests.

Test Classes

Each feature ticket your team will work on for this sprint has testing requirements. This boilerplate solution has a testing project includes with some starter code. You must make sure that all tests pass before you submit a PR.

About

Web API build for Bangazon Back End Course at NSS


Languages

Language:C# 100.0%Language:Smalltalk 0.0%