Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New API v2.0 #64

Open
24 tasks
JFQueralt opened this issue Dec 4, 2020 · 0 comments
Open
24 tasks

New API v2.0 #64

JFQueralt opened this issue Dec 4, 2020 · 0 comments
Labels
Epic 👌 Flag: Good First Issue Issue suitable for newcomers. 🥈 Flag: v2.0 Tasks required for rolling out v2.0 of the project. 🔑 Keyword: Javascript Issue involving Javascript language. 🔑 Keyword: JSON Issue involving JSON format. 🔑 Keyword: Node.js Issue involving Node.js runtime environment. Module: API Issues related to the API. ⌨ Need: Code This Issue involves some sort of coding. 🔥 Priority: Critical This task has Critical priority. Project: PLD Issue related to Project Lockdown. ✔ Stage: Ready This Task is ready to be implemented. 💖 Supported by: NDI ⌨ Team: Devs Task related to Team Developers. 💡 Type: Feature This Issue describes a Feature to be implemented.

Comments

@JFQueralt
Copy link
Member

JFQueralt commented Dec 4, 2020

logo

  • API Diagram

Background

Project Lockdown API v1.0 had the following problems:

  • Implementation was inconsistent (nomenclatures, both API endpoints and infrastructure levels)
  • Lacking some planned endpoints
  • Didn't finish implementing some response formats (namely HXL)
  • Missing documentation on the technical side
  • Missing documentation on the user side

Objectives

Responding to the needs brought upon the redesigning of the platform, the API needs to be re-written to resolve all the problems identified above.

Each task towards achieving this Epic will be linked below

Proposed solution

After deliberation, Team Devs decided to abandon the v1.0 codebase and rebuild API from scratch.

The new repository for the API is located in this folder.

See general structure of the API Endpoints in the Figma Board:
https://www.figma.com/file/7VvGhbQDphSro2dDdjDf0u/PROD-API-v2?node-id=0%3A1

Consumers:

* BO
* Funnel: Direct Feed 
* MAP
    * WEB
* Public Access (API)

Access:

* implementing an access control layer to ensure proper access to the APIs
* ~~using the user access control to ensure no abuse of the API and its infrastructure resources~~ 	with caching all requests, individual user abuse should be mitigated (that's not to say outright attacks won't cause problems, but that's outside the scope)

Documentation:

* publishing automatic documentation for end users

Monitoring:

* capturing exceptions in the API 
	_(are we using Sentry?)_

Testing

* unit test coverage of greater than 50%
* enhance with the use of automated api test tools
	* Stoplight
	* Postman
	* Katalon

Clear out any legacy codebase

Features to implement (see Issue # next to each item)

Each of the Features here described will be defined and published in their own respective Issues.

Models

Define and document the following JSON models:

Endpoints

Define, document and implement the following API Endpoints in the following order:

Mock Samples Phase I

Create JSON examples for the Endpoints in the following order:

Infrastructure

  • Implement new DB ()
  • Run API code in MS Azure ()
  • Associate API.ProjectLockdown.world with API v2.0 ()

Documentation

  • Publish API documentation ()

Resources

General API component

Technical documentation

@JFQueralt JFQueralt added Module: API Issues related to the API. 🚧 Stage: Not Ready This Task is not yet ready and its description needs to be finalized. ⚡ Priority: High This task has High priority. Team: Devs Project: PLD Issue related to Project Lockdown. labels Dec 4, 2020
@JFQueralt JFQueralt pinned this issue Dec 4, 2020
@JFQueralt JFQueralt added ✔ Stage: Ready This Task is ready to be implemented. and removed 🚧 Stage: Not Ready This Task is not yet ready and its description needs to be finalized. labels Dec 4, 2020
@JFQueralt JFQueralt added Need: Code 💡 Type: Feature This Issue describes a Feature to be implemented. labels Dec 13, 2020
@JFQueralt JFQueralt changed the title [PROD] Feature: New API v2.0 (Root Issue) [PROD] New API v2.0 (Root Issue) Dec 13, 2020
@JFQueralt JFQueralt added the 👌 Flag: Good First Issue Issue suitable for newcomers. label Dec 13, 2020
@JFQueralt JFQueralt added ⌨ Need: Code This Issue involves some sort of coding. ⌨ Team: Devs Task related to Team Developers. 🔑 Keyword: Javascript Issue involving Javascript language. 🔑 Keyword: JSON Issue involving JSON format. 🔑 Keyword: Node.js Issue involving Node.js runtime environment. and removed 📐 Need: Create labels Jan 7, 2021
@JFQueralt JFQueralt added the Epic label Jan 15, 2021
@JFQueralt JFQueralt added 🔥 Priority: Critical This task has Critical priority. and removed ⚡ Priority: High This task has High priority. labels Jan 20, 2021
@JFQueralt JFQueralt added the 🥈 Flag: v2.0 Tasks required for rolling out v2.0 of the project. label Feb 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic 👌 Flag: Good First Issue Issue suitable for newcomers. 🥈 Flag: v2.0 Tasks required for rolling out v2.0 of the project. 🔑 Keyword: Javascript Issue involving Javascript language. 🔑 Keyword: JSON Issue involving JSON format. 🔑 Keyword: Node.js Issue involving Node.js runtime environment. Module: API Issues related to the API. ⌨ Need: Code This Issue involves some sort of coding. 🔥 Priority: Critical This task has Critical priority. Project: PLD Issue related to Project Lockdown. ✔ Stage: Ready This Task is ready to be implemented. 💖 Supported by: NDI ⌨ Team: Devs Task related to Team Developers. 💡 Type: Feature This Issue describes a Feature to be implemented.
Development

No branches or pull requests

1 participant