6003CEM Web API Development CW1 Report - API Feasibility Study
Task and Mark Distribution Task
You must produce an API feasibility study report for the client described in the next section. The report should contain the following sections.
Section Description
1 A brief introduction to the document.
2 A definition and comparison of at least two HTTP-based API architectural styles, with a critical evaluation of each one in the context of the client's requirements.
3 A solution recommendation for the client with a clear justification based on your research and analysis.
4 A software architecture design diagram for the proposed solution and a suggested tech stack for its implementation, including details of language(s), libraries/frameworks, and external API providers the client could use.
5 A conclusion and a list of all references used.
You should emphasise the costs/risks, as well as the benefits of any API architecture and software development choices recommended in the report. You should also clearly justify any claims and recommendations made, using appropriate evidence. Tables and graphics should be used to more effectively compare the API styles you consider.
Mark Distribution
Component
Introduction and conclusions
Critical evaluation of at least two HTTP-based API styles Proposed solution (API style) and justification Architecture diagram and proposed tech stack
Report structure, readability, formatting, and referencing
TOTAL
Scenario Client
A national retail business The Piano and Keyboard Emporium has outlet locations around the UK. Currently the business sells musical instruments through several high street shops, and online through a Shopify integration in its WordPress-hosted website.
Marks Learning Outcomes
10 LO1, LO2, LO4 40 LO1, LO2
15 LO1, LO4
25 LO1
10 LO2
100 LO1, LO2, LO4
Existing Tech Stack
The client has a centralised stock management system for its stores and points of sale, based on a Microsoft C# desktop application connecting to a PostgreSQL database. This is used to store all stock information and sales transaction details. In addition, transactions from the Shopify online store are added to this system in an automatic batch operation each night, using the Shopify API.
Existing Expertise
The IT department at the client company currently develops and manages the existing software and the database in a small dedicated internal team, so they are experts in Microsoft C# and PostgreSQL. They are also familiar with PHP to manage their website including how to consume external APIs such as the Shopify one. However, no one on the team has developed an API or a full stack web application before.
Objective
Over the next five years, the client wishes to expand its business from musical instruments to also sell sheet music online, on a subscription-based model. They wish this part of the business to have a separate web and mobile presence from the existing WordPress site. As they have not yet operated on a subscription model, their requirements are flexible, and the feature set of their desired application should be able to be changed quickly in the early versions of their new sales product.
They recognise that they will need to choose and implement a full stack web application architecture, based around some form of HTTP-based API for the change to happen. However, they have limited knowledge of the API options available, how they work, how these options would integrate with their existing systems (their customer and sales transaction databases, in particular), or how the company might benefit from each of the available choices moving forward.
Therefore, the client would like an API feasibility report written, to help them decide on the approach they should take to develop their online sheet music subscription business.
Your task is to produce this report.
Further Guidance Content
Use the report to demonstrate your understanding of the module content, and wider research, and how APIs can be applied in a commercial context by exploring:
- the benefits and risks of adopting particular API styles and technologies for application development
- how the full stack (API and client) ecosystem is developing at its cutting edge
- emerging commercial best practices that API developers should be aware of
Scope
In terms of code implementation, the Web API Development module focuses on full stack JavaScript using a NodeJS RESTful API server. However, wider research, understanding and evaluation of other HTTP-based APIs such as gRPC, XML-RPC, JSON-RPC, SOAP, GraphQL, and other API libraries/frameworks/stacks including Django REST Framework, Go RESTful, Java Spring Boot, .Net, etc. will help you to make appropriate selections of what to include in the report.
Report Type
Feasibility studies can be of many types including technical, operational, economic, legal, or schedule/timeline. The report you write for this assessment task should be primarily a technical feasibility study: this takes account of resources in terms of existing hardware, software, maintenance capability, and the technical skills of the existing team, considering the technologies being evaluated as a possible solution.
Resources
You must conduct your own independent research to write this report and base it on appropriately cited resources that you find yourself, through the Coventry University Library, and via the Resources section in the module materials (web links and reading list).
Other good starting points for the current state-of-the-art in HTTP-based API development are the following, which contain curated links to technical articles, business analysis, and expert opinion:
• API Developer Weekly
o Click "View Archives" at the top to browse
o Subscribe to the weekly email newsletter for regular updates
• APIs You Won't Hate
o Includes articles and a regular podcast on API development
Submission Process
Please save your final report as a single PDF/DOCX file and upload it to Turnitin via Aula before the deadline above.
24 Hour Grace Period
- To accommodate any last-minute technical difficulties or changes to personal circumstances, the University will automatically accept any submissions made up to 24 hours after the deadline without penalty. There is no need to complete an extension request form if you submit within this timeframe. ·
- You may submit draft assessments up to the deadline to receive an originality report from Turnitin, however the most recent submission will be accepted as final once the deadline has passed.
- An extension normally grants you some additional days to complete the assignment.
- A deferral means you will need to complete a new assignment to be submitted at the next assessment point, typically the following semester.