You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe
Hi! I want to express my interest in contributing to the One Buy Away project by initiate the REST API client for OBA using Typescript as it said needed in this page..
Please note that this issue may not be a part of the onebusaway-docs' issues. I opened the issue here because I haven't seen any repos related to REST API development, and this repo is the most active with recent updates. I will close the issue if there is a better place to discuss this matter.
Describe the solution you'd like
Project Idea
The vision for this project is to create a comprehensive REST API using TypeScript, with a strong emphasis on type safety and maintainability. I propose to start developing the api using route-controller-service structure with expressJS.
To ensure that only valid data is accepted by the API, I will implement Data Transfer Objects (DTOs) using the Class Validator library. DTOs act as a contract between the client and server, defining the structure and validation rules for incoming data. By validating input at the DTO level, we can prevent invalid data from being processed, thereby enhancing security and reliability.
For fetching data from databases (If OBA using relational db) I propose to use Prisma as the ORM, we can streamline database operations, enhance data modeling, and ensure consistency across data interactions.
To ensure code quality and consistency, I will incorporate ESLint and Prettier into the development workflow. These tools will enforce coding standards, detect potential errors, and automatically format code, contributing to a more maintainable and professional codebase.
I will implement testing using Jest, a popular testing framework for JS and TS. With Jest, we can create unit tests to ensure the functionality of individual components and integration tests to validate the interactions between different parts of the application.
To facilitate ease of use for developers, I propose integrating Swagger for API documentation. This will provide a comprehensive reference for endpoints, request/response payloads, and example usage scenarios, streamlining the onboarding process for new contributor while waiting the docs team completed the integration process.
Note
I really loved to discuss about this project @aaronbrethorst I also have several questions releated to the project.
Is there any API Spec docs as a brief to the api requirement. Including the header and all the response cases for each route? Or this page could be our references? https://developer.onebusaway.org/api/where
How api fetch the data? Do the api directly fetch to the data like using ORM to database? If yes, is there any dump data example for testing purposes?
Describe alternatives you've considered
No response
Additional context
If necessary, I would love to provide samples of my code using the proposed patterns. I will deploy the project to my VPS for testing and demonstration purposes.
Are you working on this?
Yes
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe
Hi! I want to express my interest in contributing to the One Buy Away project by initiate the REST API client for OBA using Typescript as it said needed in this page..
Please note that this issue may not be a part of the onebusaway-docs' issues. I opened the issue here because I haven't seen any repos related to REST API development, and this repo is the most active with recent updates. I will close the issue if there is a better place to discuss this matter.
Describe the solution you'd like
Project Idea
The vision for this project is to create a comprehensive REST API using TypeScript, with a strong emphasis on type safety and maintainability. I propose to start developing the api using route-controller-service structure with expressJS.
The project structure will look like this:
I will follow the current response pattern using
code
,current_time
, anddata
in response body.To ensure that only valid data is accepted by the API, I will implement Data Transfer Objects (DTOs) using the
Class Validator
library. DTOs act as a contract between the client and server, defining the structure and validation rules for incoming data. By validating input at the DTO level, we can prevent invalid data from being processed, thereby enhancing security and reliability.For fetching data from databases (If OBA using relational db) I propose to use
Prisma
as the ORM, we can streamline database operations, enhance data modeling, and ensure consistency across data interactions.To ensure code quality and consistency, I will incorporate
ESLint
andPrettier
into the development workflow. These tools will enforce coding standards, detect potential errors, and automatically format code, contributing to a more maintainable and professional codebase.I will implement testing using Jest, a popular testing framework for JS and TS. With
Jest
, we can create unit tests to ensure the functionality of individual components and integration tests to validate the interactions between different parts of the application.Library docs list:
Additional Ideas
To facilitate ease of use for developers, I propose integrating
Swagger
for API documentation. This will provide a comprehensive reference for endpoints, request/response payloads, and example usage scenarios, streamlining the onboarding process for new contributor while waiting the docs team completed the integration process.Note
I really loved to discuss about this project @aaronbrethorst I also have several questions releated to the project.
Describe alternatives you've considered
No response
Additional context
If necessary, I would love to provide samples of my code using the proposed patterns. I will deploy the project to my VPS for testing and demonstration purposes.
Are you working on this?
Yes
The text was updated successfully, but these errors were encountered: