Skip to main content
Help us improve Python packaging – donate today!

Zencore Jsonrpc2 Library

Project Description

  • package name: zencore-service
  • module name: zencore_service

基本需求

  • 功能性要求

    • 为django应用设计的rpc2.0接口开发框架
    • 服务自发现
    • 服务自描述
    • 提供js前端调用sdk
    • 提供python后端调用sdk
  • 安全性要求

    • 可以启停的csrf保护机制
    • 基于session的认证保护机制
  • 性能优化要求

    • 允许nginx/haproxy等web服务器或代理在不解压数据的情况下,识别调用目标
    • 允许一次请求多个服务调用

概要设计

  • 服务端概述

    • 接口协议:jsonrpc 2.0(详见:http://www.jsonrpc.org/specification
    • 请求方法:POST
    • 输入参数:request.PAYLOAD
    • 响应数据:JsonResponse
    • 接口路由:固定入口
  • 客户端概述

    • 提供python3客户端(基于requests)
    • 提供jQuery客户端
    • 提供angularjs 1.x客户端
  • 服务端处理流程

    • DJANGO请求处理机制
    • ServiceManager.handler(标准django视图)
      1. Decode payload
      2. Find service by payload.method
      3. Call service and get the result or exception
      4. Make response
  • 核心模块列表

    • zencore_service.server.Fault
    • zencore_service.server.Service
    • zencore_service.server.ServiceManager
    • zencore_service.middlewares.CsrfProtectMiddleware
    • zencore_service.client.JsonrpcProxy

FAQ

  • Service是每次请求都进行实例化,还是单例模式?

    Service类在注册时,进行实例化。所以在一个worker进程内,是单例的。

Release history Release notifications

This version
History Node

1.0.12

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
zencore-jsonrpc2-1.0.12.tar.gz (12.3 kB) Copy SHA256 hash SHA256 Source None Jul 13, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page