2019-11-11 11:32:38 +00:00
2019-11-11 11:32:38 +00:00
2019-11-11 12:30:09 +01:00
2019-11-11 12:30:09 +01:00
2019-11-11 12:30:09 +01:00
2019-11-11 12:30:09 +01:00
2019-10-31 22:37:04 +01:00
2019-10-30 15:21:43 +01:00
2019-11-11 12:30:09 +01:00
2019-11-11 12:30:09 +01:00
2019-11-11 12:30:09 +01:00

Personal API

Make a secured web API that stores and serves up your data! The current schema is oriented towards powering freelancers' websites.

Installation

Fork the project, then do pipenv install.

Set three config vars in your .bashrc etc.:

PERSONAL_API_USERNAME
PERSONAL_API_PASS
PERSONAL_API_SQLALCHEMY_DATABASE_URL

PERSONAL_API_SQLALCHEMY_DATABASE_URL should be for a postgres instance somewhere, in the format

postgresql://{username}:{password}@{host}:{port}/{db_name}

Using Locally

Start the server with uvicorn app.main:app, then create, get, delete, and update records at will.

Deployment

See "Using Locally", but point it at whatever web server you're using.

Tables

As of today the available endpoints are

/availability
    id: int
    when: datetime
    available: bool
    next_available: datetime

    methods are GET and POST

/resume (versioned)
    id: int
    when: datetime
    url: str

    methods are GET and POST

/posts
    id: int
    when: datetime
    title: str
    description: str
    body: str
    custom_url: str (optional)
    syndicate: bool (optional)

    methods are GET, POST, PATCH, and DELETE

/projects
    id: int
    when: datetime
    title: str
    description: str
    link: str (optional)

Dependencies

This project relies on the excellent work of SQLALchemy, Pydantic, FastAPI, Pytest, and Starlette

Why?

It started as an excuse to get acquainted with FastAPI, as well as to make a front-end first (JAMstack?) personal site.

Description
No description provided
Readme 66 KiB
Languages
Python 97.5%
Dockerfile 2.5%