皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

SOP 1.8.0 发布,开放平台解决方案项目

SOP 1.8.0 发布,本次更新内容如下:

  • 支持文件上传 doc

SDK使用文件上传方式如下:

JAVA SDK

DemoFileUploadRequest request = new DemoFileUploadRequest();

DemoFileUploadModel model = new DemoFileUploadModel();
model.setRemark("上传文件参数");
request.setBizModel(model);

List<UploadFile> files = new ArrayList<>();
String root = System.getProperty("user.dir");
System.out.println(root);
// 这里演示将resources下的两个文件上传到服务器
files.add(new UploadFile("file1", new File(root + "/src/main/resources/file1.txt")));
files.add(new UploadFile("file2", new File(root + "/src/main/resources/file2.txt")));
request.setFiles(files);

DemoFileUploadResponse response = client.execute(request);

System.out.println("--------------------");
if (response.isSuccess()) {
    List<DemoFileUploadResponse.FileMeta> responseFiles = response.getFiles();
    System.out.println("您上传的文件信息:");
    responseFiles.stream().forEach(file->{
        System.out.println(file);
    });
} else {
    System.out.println("errorCode:" + response.getCode() + ",errorMsg:" + response.getMsg());
}
System.out.println("--------------------");

C# SDK

DemoFileUploadRequest request = new DemoFileUploadRequest();

DemoFileUploadModel model = new DemoFileUploadModel
{
    Remark = "上传文件参数"
};
request.BizModel = model;

string root = Environment.CurrentDirectory;
Console.WriteLine("当前目录{0}", root);

// 文件上传
// 将当前目录下的两个文件上传到服务器
request.AddFile(new UploadFile("file1", root + "/file1.txt"));
request.AddFile(new UploadFile("file2", root + "/file2.txt"));

DemoFileUploadResponse response = client.Execute(request);
if (response.IsSuccess())
{
    List<DemoFileUploadResponse.FileMeta> responseFiles = response.Files;
    Console.WriteLine("您上传的文件信息:");
    responseFiles.ForEach(file =>
    {
        Console.WriteLine("上传的文件名:{0},文件大小:{1},文件内容:{2}", file.Filename, file.Size, file.Content);
    }
    );
}
else
{
    Console.WriteLine("错误, code:{0}, msg:{1}, subCode:{2}, subMsg:{3}",
         response.Code, response.Msg, response.SubCode, response.SubMsg);
}

服务端接收上传文件

/**
 * 方式1:将文件写在参数中,可直接获取。好处是可以校验是否上传
 * @param param
 * @return
 */
@ApiMapping(value = "demo.file.upload")
public FileUploadVO file1(FileUploadParam param) {
    System.out.println(param.getRemark());
    // 获取上传的文件
    MultipartFile file1 = param.getFile1();
    MultipartFile file2 = param.getFile2();
    ...
    return vo;
}

@Data
public class FileUploadParam {
    private String remark;

    // 上传文件,字段名称对应表单中的name属性值
    @NotNull(message = "请上传文件1")
    private MultipartFile file1;

    @NotNull(message = "请上传文件2")
    private MultipartFile file2;
}

关于SOP

SOP(Simple Open Platform)

一个开放平台解决方案项目,基于Spring Cloud实现,目标是能够让用户快速得搭建起自己的开放平台。

SOP提供了两种接口调用方式,分别是:支付宝开放平台的调用方式和淘宝开放平台的调用方式。 通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。

SOP封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理等,未来还会实现更多功能。

项目特点

  • 接入方式简单,与老项目不冲突,老项目注册到注册中心,然后在方法上加上注解即可。
  • 架构松耦合,业务代码实现在各自微服务上,SOP不参与业务实现,这也是Spring Cloud微服务体系带来的好处。
  • 扩展简单,开放平台对应的功能各自独立,可以自定义实现自己的需求,如:更改参数,更改签名规则等。

谁可以使用这个项目

  • 有现成的项目,想改造成开放平台供他人调用
  • 有现成的项目,想暴露其中几个接口并通过开放平台供他人调用
  • 想搭一个开放平台新项目,并结合微服务的方式去维护
  • 对开放平台感兴趣的朋友

以上情况都可以考虑使用SOP

架构图

SOP 1.8.0 发布,开放平台解决方案项目

转自 https://www.oschina.net/news/106709/sop-1-8-0-released