Giter Club home page Giter Club logo

domainapi-framework's Introduction

一个基于领域树形图的API框架

​ 使用一个树形的描述语言描述具体业务

​ 通过解析描述,自动生成大部分model,view等代码

​ 每个树节点原则为一个暴露服务或暴露服务的集合

​ 每个树节点描述了该节点的所有字段

​ 每个树节点描述了该节点的检查

​ 每个节点能映射为一个数据库model

​ 任意一个树上节点能由顶节点开始遍历到,并以此为访问路由

​ 描述语言代替了MVC中大部分VC端的工作

方案选择:

​ 树形描述语言采用baidu团队开发的kitymind(km),其源文件为结构明确的json文件

方便遍历和查找。

​ 工作流程:

​ 文件合法性检查与km2python-object:

​ json检查

​ data数据(km中描述节点的key)的note-json检查

​ 以上两步在km文件转化为python对象时同步完成

​ 遍历节点,并记录遍历路径,遍历节点后,将该节点的note部分内容转换为api-python代码,使用遍历作为路由。

​ api-python部分技术选型:

​ 使用SinglePage框架,SinglePage是我另一个开源项目,对RESTful风格的API建设支持良好。 Django,Django是一个使用广泛且功能完善的Python Web框架

方案任务:

​ 描述文件检查器

​ 检查描述文件并转换为python对象 17.6.30: 对象遍历生成路由 17.6.31 纠结之处在于: 使用生成代码模式还是使用程序动态对象模式 生成代码模式: 既树形图的描述语言相当于对代码的一次描述, 然后生成静态的代码文件 好处:给程序员更高的自由度 动态对象模式: 既树形图直接描述Model,View等对象,然后使用语言的反射类技术动态生成程序对象 好处:无需暴露任何中间文件,一个描述文件直接拉起服务。 充分利用python的特性,决定选型为动态对象模式,并且采用监听属性变动的方式来完成更复杂的业务逻辑 确定api-python部分技术选型 17.7.1 规范每个节点note部分的文档选型

​ 节点生成器

​ 遍历python对象并将各节点使用构造器构造

​ 构造器

​ 将参数构造成api-python模块

domainapi-framework's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.