Skip to main content

Micro Service Framework for Python

Project description

Laka

Build Status codecov Codacy Badge PyPI - Python Version PyPI PyPI - License

Laka is a microservice framework for Python, based on json and redis.

Install

  1. Step one Install Fofo
  2. Step two
    pip install laka
    

Feature

  • Service Register and Discovery
  • Transmit data with Json RPC

Tutorial: Server

  1. Create Server and Register Service
    from laka import LakaServer
    
    laka_server = LakaServer(
        service_name="lakaTest",    # Register Service with this name
        redis_host="localhost", 
        redis_port=6379, 
        redis_queue="laka_request", 
        fofo_host="10.88.190.211",
        fofo_port=6379,
        response_message=RESPONSE_MESSAGE,
        check_health=True,
    )
    
  2. Define param for Handler
    from laka import Param
    
    class CreateUserParam(Param):
        def __init__(self):
            self.account = None
            self.password = None
            self.tel = None
        
        def validate(self):
            """
            validate will be run automatically
            you should not run validate by yourself
            """
            if not (self.account and self.password):
                return False
            return True
    
  3. Define Handler
    from laka import Handler
    
    class CreateUserHandler(Handler):
        Param = CreateUserParam
    
        def handle(self):
            user = {"password":self.param.password, "account":self.param.account}
            return HandlerOK(user)
    
  4. Add router
    # COMMAND_CREATE_USER = 101
    laka_server.router(COMMAND_CREATE_USER, CreateUserHandler)
    
  5. Accept & Handle request
    for queue, cmd in laka_server.accept_request():
        handler_response = laka_server.handle(cmd)
    

Tutorial: Client

  1. Create Client
    from laka import LakaClient
    
    laka_client = LakaClient(
        service_name="lakaTest",    # service_name is the service you want to connect to
        fofo_host="10.88.190.211",
        fofo_port=6379,
    )
    
  2. Define & Create param
    from laka import Param
    
    class CreateUserParam(Param):
        
        def __init__(self, account, password, tel=None):
            self.account = account
            self.password = password
            self.tel = tel
        
        def validate(self):
            """
            validate will be run in request automatically
            you should not run validate by yourself
            """
            if not (self.account and self.password):
                return False
            return True
    
    param = CreateUserParam("olivetree", "123456")
    
  3. Send Request
    request_id = laka_client.request(COMMAND_CREATE_USER, param)
    
  4. Get Response
    response = laka_client.accept_response(request_id)
    print("response = ", response.json())
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Laka-0.3.tar.gz (7.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page