引子
最近公司的系统约来越多,基本上每个系统都需要用到“资源”,以前只是简单的把“资源”放到Web服务器中,但是这样的话有一个头痛的问题----如何去管理“资源”?
想法
现在不是很流行API嘛,大家好像都在整什么面向服务、面向资源、RESTful什么的,据说在与复杂性的斗争中,人们讨论表象化状态转移(REST)已成为了一种时尚!我对这些概念也就是知道个大概,但是也不能解释的很清楚,但是用意和优点还是很明确的!说白了就是各式各样的“API”,可能我的理解有偏差,还望大家海涵,哈哈!
HTTP中有几个常见谓词,分别是GET/POST/PUT/DELETE,这也正是对应了我们经常说到的CRUD,含义就是对一个资源的增删改查!
那咱能不能来一个文件API呢?实现对一个一个文件的CRUD?
说时迟,那时快
既然有了想法,咱就得开始干了!那么接下来的问题又来了,怎么干?
文件的增删改查很简单,基本功呗!
数据格式?字节数组吧,不用转来转去,
数据传输呢?就跟一般的API一样走HTTP协议,HTTP请求报文中分为两个部分:请求头和请求体,既然这样,正好符合我们的需求,请求体承载文件流的字节数组,请求头中附加一些额外的信息!
说到这,基本上大概的“形状”就有了!那咱就开始干!!!
添加一个Web应用程序作为服务端,WebForms或者Mvc的都可以。我这里演示的是Mvc的!
不废话,先上代码(只有上传操作),待会大概解释一下。
// ***********************************************************************
// Project : Beimu.Bfs
// Assembly : Beimu.Bfs.Web
// Author : iceStone
// Created : 2014年01月03日 10:23
//