Giter VIP home page Giter VIP logo

oaspub's Introduction

Problem

Developers lack the ability to easily store and recall a specific version of a JSON schema within an OAS document. Oftentimes, the version field found in the Info Object goes ignored and unchanged. Another related problem is that Reference Objects are underused. OAS is perfect for complex REST API systems in enterprise scenarios but the missing link that would make it even more widely used is version management and recall of the JSON schemas found in an OAS document.

Objective

Fulfill the need for semantic versioning of OAS documents and rapid recall of specific versions of a JSON schema found in an OAS document.

Packages

  1. Publisher API: A web server that validates and manages OAS documents and provides a historical lookup of schemas.
  2. Publisher Client: A browser portal for discovering and visualizing OAS documents and their change history.
  3. Publisher CLI: A command line tool for publishing and managing OAS documents.

Contributions

No contributions to this project will be allowed until after the v1 milestone.

Future Considerations

I'm considering building a NodeJS client and CLI interface to facilitate the use of this product in CI/CD environments. However, this enhancement will likely fall outside of the v1 deadline (if at all).

Appendix

  1. Domain Driven Design Document
  2. REST API Design Document

oaspub's People

Contributors

dependabot[bot] avatar stuft2 avatar

Watchers

 avatar

Forkers

oaspub

oaspub's Issues

DDD Assignment

Assignment Due Date

Wednesday, Jan 20

Details

Write up a formal Domain Driven Design document that details:

  • Domain events
  • Domain commands
  • Entities
  • Value Objects

Review with one of your peers your design and their design. Please take this seriously. This critical thinking can be a great help to your peer.

Review with the instructor your design. You will be graded based on the completeness of your DDD evaluation. Know that your DDD will continue to evolve, but this should be a well done first design.

Submit your DDD design to Learning Suite.

See Full Stack Web for more information.

Vue Components

Due Wednesday, March 17 at 11:59 pm MT (right before midnight)

Create a simple Vue component and implement it on one or more pages.

For pass off, demonstrate the working Vue component, show me the code, and be prepared to answer any related questions.

Pass off will occur in class during lab time.

REST Routes Implemented

Due Wednesday, February 22 at 11:59 pm MT (right before midnight)

For this assignment I'll want to see that you have a few REST API routes implemented and working.

Demo to me the working REST endpoints and be prepared to answer any questions.

Pass off will happen in class during lab time.

Vue Pages

Due Wednesday, March 10 at 11:59 pm MT (right before midnight)

For this assignment you'll need to have at least two Vue pages with routes.

For pass of you'll need to show me the working pages, the code that makes them work, and answer any related questions.

This pass of will happen in class.

REST API Design

Assignment Due Date

Monday, January 25

Details

Use your DDD document to now create a rough outline of how your REST API will be organized.

We'll take a look at the rough outline that you've created for your REST API. This should not yet exist as an OpenAPI document.

Define REST representations for backend as described here

Define API endpoints for backend as described here

Submit the outline in Learning Suite.

See Full Stack Web for more details

Database

Due Monday, March 1 at 6:59 pm MT

Write a docker-compose.yml file that will spin up a database and a database admin tool.

With both your server and your database running in their own containers you will now want to actually use your databases.

Write the code for at least four (4) of your REST endpoints (URL and method combination) that access the database.

At a minimum I'm looking for API endpoints that when called perform one of a read, write, update, and delete.

Vuex

Due Monday, March 22 at 11:59 pm MT (right before midnight)

Set up your Vuex store with state, mutations, and actions. The next assignment will include adding AJAX calls to your actions, but for now just have your actions commit to your mutators.

For pass off, demonstrate the working Vuex state management, show me the code, and be prepared to answer any related questions.

Pass off will occur in class during lab time.

OpenAPI Document

Due Wednesday, February 3 at 6:59 pm MT

Convert your rough outline of your REST API from the previous assignment into a valid OpenAPI document.

The REST API should follow the industry best practices.

Review with the instructor your REST API. It will be compared against your REST outline and against REST best practices.

Submit your OpenAPI document on learning suite.

Ajax

Due Wednesday, March 24 at 11:59 pm MT (right before midnight)

Implement into your Vuex store's actions at least 2 AJAX calls. One AJAX call should be a getter and the other AJAX call should be sending update information.

For pass off, demonstrate the working Vuex actions making AJAX calls, show me the code, and be prepared to answer any related questions.

Pass off will occur in class during lab time.

Authentication & Authorization

Due Monday, March 8 at 6:59 pm MT

For this assignment you will need to set up authentication and authorization.

Create REST endpoints that allows a user to do the following:

Set up a username and password.
Log in.
Reach an the endpoint only if the user has a valid session or JWT.
Log out.

Pass off for this assignment will happen in class.

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.