I have data stored in the file system (normalized across multiple small files) and I have written python functions to read/write data from the file system. Read API returns object of type Job. Write API expects an object of type Job to be passed as an argument.
def get_jobs(starttime, endtime):
''' Reads and returns jobs that ran between starttime and endtime interval '''
def put_job(job):
''' Persists Job object to a file system '''
class Job:
def __init__(self, name, key, starttime, endtime):
self.name = name
self.key = key
self.starttime = starttime
self.endtime = endtime
Now I want to expose these functions via a web server. I would prefer exposing GraphQL APIs with Django.
Questions:
- Is Django/Django REST framework a right choice for this? I am new to Django and GraphQL.
- Django models seem to be tightly coupled with Databases. Will I have to create another Job model class, and create it using Job returned by read_jobs function? If yes, how can I create a simple web application from here?
Note:
- Job object is a three-level nested object and has many attributes/properties. For the demonstration purpose, I kept only four attributes/properties in the question here.
- I would prefer Django because my application at this stage might look a bit small but over time it will grow and I have lots of features that I need to add. I am specifically looking for solutions with django-graphene based application without using SQLite DB or without assuming that the data is getting fetched from some database. I want to leverage my persistence API methods for querying data from the file system.