Code Monkey home page Code Monkey logo

api_fastapi's Introduction

Social_Media API

  • Developed a RESTful API using FastAPI, enabling users to perform CRUD operations on posts.
  • Implemented PostgreSQL as the backend database with the help of SQLAlchemy as the ORM(Object Relational mapping) for handling SQL queries.
  • Validated API functionality using Postman, ensuring accurate request/response handling and adherence to API specifications.
  • Created a CI/CD pipeline using GitHub Actions, automating the testing, building, and deployment processes for the API.
  • Hosted the API using Render hosting services, ensuring reliable and scalable deployment of the application.

Repository Walkthrough

  • app
    Main code for the API is in app directory. App directory consists of
    • router directory All the operations that API support are stored in the router directory in different files on the basis of type of operation
      • post (all the CRUD operations that can be performed on the posts)
      • user (operations for sign in/log in and authenticating user)
      • votes (operations for casting and keeping track of votes on posts)
    • main (responsible to integrate all operation files in the API)
    • auth,oauth2,utils (they contains utility funtions used in authentication of user)
    • schema (defines the specifice schema that a data being send to/received by API should follow)
    • database,models,config (these files create connection to database, define table and schemas for respective table and provide session when there is a need to read/write in database)
  • tests
    tests directory contains files for testing the API. These test files are executed everytime ci/cd pipline is triggered.
    • database (this file contains code that creates a temporary database for tests to use)
    • confest ( definition of the fixture functions is stored in this file to make them accessible across multiple test files)
    • test_posts,test_users,test_votes (these files contains tests to check that all functions of API are working properly)
  • .github/workflow
    Contains build-deploy file which defines the ci/cd pipline.
  • Alembic,ALembic.ini
    ALembic provides version control for the database.
  • DockerFile,docker_compose-dev,docker_compose-prod
    DockerFile Specifies How a image will be created and build, docker-compose files build containers according to specified steps to run applications.

Try out API

Refer to https://social-media-api-do4q.onrender.com/docs for documentation and to try out API.

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.