input: from typing import List, Dict
  
  def basic_crud_api(class_model: object, routes: List[Dict[str, str]]) -> str:
      """
      Create a basic CRUD API for the given BlogPost model using Flask. The API should include endpoints for creating a post, getting all posts, getting a single post, editing a post, and deleting a post.
  
      >>> from flask import Flask, jsonify, request
      >>> from flask_sqlalchemy import SQLAlchemy
      >>> app = Flask(__name__)
      >>> app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
      >>> db = SQLAlchemy(app)
      >>> class BlogPost(db.Model):
      ...     id = db.Column(db.Integer, primary_key=True)
      ...     title = db.Column(db.String(200))
      ...     content = db.Column(db.Text)
      ...     def serialize(self):
      ...         return {'id': self.id, 'title': self.title, 'content': self.content}
      >>> routes = [
      ...     {'method': 'POST', 'endpoint': '/post', 'function': 'create_post'},
      ...     {'method': 'GET', 'endpoint': '/posts', 'function': 'get_posts'},
      ...     {'method': 'GET', 'endpoint': '/post/<id>', 'function': 'get_post'},
      ...     {'method': 'PUT', 'endpoint': '/post/<id>', 'function': 'edit_post'},
      ...     {'method': 'DELETE', 'endpoint': '/post/<id>', 'function': 'delete_post'}
      ... ]
      >>> basic_crud_api(BlogPost, routes)
      '<BlogPost API>'
      """
      pass
output:     
      from flask import Flask, jsonify, request
      from flask_sqlalchemy import SQLAlchemy
  
      app = Flask(__name__)
      app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
      db = SQLAlchemy(app)
  
      @app.route('/post', methods=['POST'])
      def create_post():
          data = request.json
          new_post = class_model(title=data['title'], content=data['content'])
          db.session.add(new_post)
          db.session.commit()
          return jsonify(new_post.serialize()), 201
  
      @app.route('/posts', methods=['GET'])
      def get_posts():
          posts = class_model.query.all()
          return jsonify([post.serialize() for post in posts]), 200
  
      @app.route('/post/<int:id>', methods=['GET'])
      def get_post(id):
          post = class_model.query.get_or_404(id)
          return jsonify(post.serialize()), 200
  
      @app.route('/post/<int:id>', methods=['PUT'])
      def edit_post(id):
          post = class_model.query.get_or_404(id)
          data = request.json
          post.title = data['title']
          post.content = data['content']
          db.session.commit()
          return jsonify(post.serialize()), 200
  
      @app.route('/post/<int:id>', methods=['DELETE'])
      def delete_post(id):
          post = class_model.query.get_or_404(id)
          db.session.delete(post)
          db.session.commit()
          return '', 204
  
      return '<BlogPost API>'
  