编辑-发布-开发分离: 静态API设计

周末在计划着Growth的最外一层,即解决方案的时候,想着自己要做一个静态的API——即基于JSON与GitHub的API。

在之前的那篇《编辑-发布-开发分离:git作为NoSQL数据库》中,我们经常提到过使用git作为数据库的N种优点。

因为我暂时没有足够的精力,去负担这样一个解决方案系统的构建。所以,我就想我只需要简单地做一个JSON的API即可。

设计思路

对于Growth应用上的解决方案这种页面来说,它和博客类似,主要由两部分来组成:

  • 详细页
  • 列表页

做过博客的人都知道,列表页实际上是一由很多篇博客组成的。假设我们已经按之前的思路(编辑-发现-开发分离),将一篇篇的博客做成两部分

  • 原始数据文件——JSON
  • 生成详细页文件——html

那么,我们就可以依据这个JSON来生成列表页——这就是写一个脚本的事。

实战方案

于是,我就在这几天里开始构思这个脚本,然后有了一点点收获。我的意思是,我已经写了这样一个简单的脚本。但是因为我想试试RxJS,所以我现在好像又在异步的坑里了。不过,这不重要先让我来说说方案,无非就是:

  • 读取、解析原始JSON文件
  • 每十个实体合成一个JSON文件
  • 最后几个文件生成一个JSON文件

稍微不同的是一个解决方案的JSON文件里,可能有多个对象。

好了,写完了,在GitHub上:https://github.com/phodal/solutions

优点

我一直都喜欢简单的设计,对于我来说可以用静态方案来解决的问题,那么就应该考虑用静态的方案。它具有以下的特点

  1. 便宜——要知道对于云服务来说,存储文件比CPU运行省钱得多
  2. 安全——再也不担心服务器被入侵了
  3. 省电——CPU消耗少

除此,我们还可以减少在DevOps上的支出。

原文发布于微信公众号 - phodal(phodal-weixin)

原文发表时间:2016-05-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HTML5学堂

移动端及时调试工具 - weinre使用方法

HTML5学堂:在前一篇文章当中,我们借着weinre讲解了NodeJS中的一些简单命令,也讲解了weinre的安装方法,今天我们把weinre的使用“完结”掉...

2953
来自专栏有趣的django

Django REST framework+Vue 打造生鲜超市(七) 八、商品详情页功能

八、商品详情页功能  8.1.viewsets实现商品详情页接口 (1)商品详情页只需要多继承一个类(mixins.RetrieveModelMixin)就可以...

51811
来自专栏Crossin的编程教室

如何安装 Python 的第三方模块

正所谓“人生苦短,我用 Python”。Python 的一大优势就是有丰富且易用的第三方模块,省去了大量重复造轮子的时间,节约了众多开发者的生命。对于已经熟悉 ...

2899
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM

前言   承接前文《Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven》,本篇所讲述的是如何使用maven与原s...

5405
来自专栏EAWorld

微服务系统之认证管理详解

微服务大行其道,微服务安全也是非常热门的话题。本文向大家分享微服务系统中认证管理相关技术。其中包括用户认证、网关和 API 认证、系统间和系统内的认证,以及我们...

3081
来自专栏.Net移动开发

.Net语言 APP开发平台——Smobiler学习日志:基于Access数据库的Demo

说明:该demo是基于Access数据库进行客户信息的新增、查看、编辑 新增客户信息和客户列表

1502
来自专栏王清培的专栏

ElasticSearch大数据分布式弹性搜索引擎使用

阅读目录: 背景 安装 查找、下载rpm包 、执行rpm包安装 配置elasticsearch专属账户和组 设置elasticsearch文件所有者 切换到el...

77610
来自专栏北京马哥教育

【图文并茂】一步步带你了解Web站点架构

1.1 http反向代理服务器 在web站点前端,我们需要搭建一个反向代理服务器,用于负责接受用户的请求,请求包括动态和静态的内容请求。一般反向代理服务器的部署...

4818
来自专栏Django中文社区

建立 Django 博客应用

建立博客应用 我们已经建立了 Django 博客的项目工程,并且成功地运行了它。不过到目前为止这一切都还只是 Django 为我们创建的项目初始内容,Djang...

2947
来自专栏YouMeek

一个Java程序员眼中的Mac OS(系列五:包管理工具)

本文初衷 整理自己脑袋中、收藏中的那些资料,来一次清空,让自己重新开始。 帮助 Mac 后来者,减少他/她入门成本 先总结 有 Homebrew 配置,安装/维...

6889

扫码关注云+社区

领取腾讯云代金券