防止应用程序更改破坏API

时间:2011-11-22 09:40:28

标签: api wcf-web-api

我有一个应用程序,我目前正在编写API。这是我第一次从头到尾创建一个API,并阅读了很多好文章以及如何做到这一点。然而,很多这些材料专门针对API开发(应该如此),但没有发现任何涉及如何确保API不会被应用程序项目中发生的更改破坏的内容。

我的应用程序包含一个ASP.NET MVC Web应用程序,该应用程序调用服务层来执行类似CRUD的操作。因此,为了获得我的应用程序中的所有用户的列表,MVC应用程序调用服务层并询问它们,并向其呈现用户集合。我的API(WCF Web API)也在内部使用此服务层,当我请求用户列表时,我再次收回用户集合(JSON,XML等)。

但是,如果由于某种原因,另一个开发人员通过重命名字段将姓氏改为姓氏来更改基础用户域对象,那么这可能会破坏我的API,因为服务层将返回到我的API一个用户对象新字段名称,当它期待别的东西。我的API实际上有自己的对象表示,它们在被请求时被映射到应用程序对象,但是这个映射不会映射到surname属性,而是将返回为null。

因此,我必须严格控制应用程序中的所有更改,因为我提供了API吗?如果是这样,那么您是否必须同时更改您的应用和API?如果错过了更改怎么办?上述内容对我来说似乎不正确,因此我的职位是寻求更多的知识。

我再次对此非常陌生,所以对此的任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

如果您可以在应用程序发展并支持旧版本时创建新版本的API,那么您的应用程序将不可避免地发展,然后通知老版本API何时会变得过时。

答案 1 :(得分:1)

如果您拥有API设计,并且您真的不希望任何人污染您的设计。为您的API使用专门的DTO。从基础域模型映射。但是你的演示文稿(通过xml或json)不会改变,即使基础模型经常变化。