我需要实现大约7个REST Web服务。这些Web服务中有一些有标准(相同)的响应,而有些则有不同的响应。
这些Web服务的请求不同,但某些请求和某些响应具有相同的基础数据对象。
我不确定是否必须为每个Web服务构建单独的请求/响应类,还是重用一个标准类。我想知道是否有设计模式可以为这些Web服务的请求对象和响应对象建模。
假设Account和Book是我的Web服务将要处理的两个REST资源。
class Account {
String username;
String id;
}
class Book {
String title;
String isbn;
}
我的 Web 服务长这样:
MYAPI/CreateAccountandBook
MYAPI/Account/Create
MYAPI/Book/Create
MYAPI/Book/Update/{isbn}
MYAPI/Account/Update/{id}
MYAPI/Account/getInfo/{id}
等等其他内容。
现在,CreateAccountandBook
请求将在有效负载中采取一个帐户对象和一组书籍的列表。
此外,MYAPI/Account/getInfo/{id}
的响应对象具有与该帐户关联的帐户对象和书籍列表。但是,响应对象还包括一个statusCode
和Description
。
现在,我想以最好的方式为这些请求和响应对象创建类。
好的,先从以下两个抽象类StandardRequest
和StandardResponse
开始。
所有请求类都将扩展标准请求类并进行相应的自定义。 所有响应类都将扩展标准响应类并进行相应的自定义。
但是,这些请求和响应可以非常相互不同,但仍可以重用相同的实体对象。
例如:
createAccountandBook
请求对象如下所示:
class CreateAccountAndBookRequest {
Account account;
List<Book> books;
}
当调用 getInfo
web 服务时,响应为:
class GetInfoResponse {
Account account;
List<Book> books;
String statusCode;
String description;
}
因此,请求和响应类之间存在重叠。我可以为每个 Web 服务创建两个(req/res)类。但是我想知道是否有更好的方法来建模这些类。