你不是很清楚谁是合伙人;或者您是否正在保护对数据的访问、限制 API 调用,或两者兼而有之。
您正在做的事情可能非常适合您的业务。假设您需要保护服务提供访问权限的数据,您需要对每个用户进行身份验证并保护传输层。对于前者,您需要拥有最终用户的用户名和密码或唯一的 API 令牌。这应该在每个请求上进行检查。如果您对服务使用 HTTP,则可以使用 SSL 启用传输安全性。在 Web 服务器级别启用此功能通常是最简单的,您不会提及您正在做任何特殊的 Web 服务托管。
假设这种安全性已经到位,它应该为审计提供基础,这就是我假设您所说的日志调用的意思。用户名或 API 令牌将让您了解谁在进行调用,这是审计的基础。接下来创建一个您希望查看审计跟踪的数据列表。询问业务用户记录的信息是否可以帮助处理您的问题(是什么促使您添加记录)。
接下来要考虑的是日志记录代码应该去哪里(有中心点吗?你使用 AOP 来添加它吗?),以及审计跟踪应该记录到哪里。有像 PostSharp 这样的工具,可以让您在应用程序中编织日志,而无需进行大量修改,但在执行此操作之前,请查看是否有一种简单的方法可以将日志功能添加到应用程序的公共位置以“捕获”信息你需要。
一旦您掌握了数据,您就需要将其保存在某个地方。这就是事情变得有趣的地方。您需要了解应用程序的性能特征,以及可能的使用模式。在许多应用程序中,只记录到数据库是可以的,但有时这将是一个性能问题。记录到文本文件对某些人来说是可以的,但如果数据需要关联回您的用户数据库怎么办?在这种情况下,您需要一些代码来处理日志文件和导入数据。
在您花太多时间构建任何日志记录代码之前,值得先看看NLog、Log4Net 和企业库logging block。这些是通用工具,可以提供更好的基础。
如果您需要强制执行用户配额,您可能需要考虑处理日志的速度,以确定用户进行了多少次调用。理想情况下,每次处理传入请求时,您都将掌握用户的当前状态,以便能够返回适当的响应。可以努力将此功能添加到现有应用程序中,并提供“基础设施”来支持它。
是否使用 REST、JSON、XML、SOAP 等实际上取决于您的受众。他们会使用 Ruby 和 Python 之类的语言来调用您的服务,还是会使用 .NET?如果他们主要是 .NET 用户,那么使用 JSON 构建纯 REST 接口可能没有多大意义,因为 .NET 使 SOAP 变得非常容易。另一方面,如果您在客户端使用 JavaScript,那么 SOAP 和 XML 就很糟糕。请记住,如果没有更多关于用户的信息,就没有正确的答案。一般来说,JSON 不是万能的,XML 也并非总是最糟糕的选择。
更新
我没有兴趣调查我们的
合作伙伴的格式/协议
他们更喜欢,因为其中一个
要求是添加新的能力
没有 IT 参与的合作伙伴。 ID
就像一些关于最佳实践的提示一样,
以便我们以“正确”的方式进行操作
他们可以顺从。
最灵活的选项可能是 REST 和 XML。由于几乎所有平台都有 HTTP 堆栈,因此得到了最广泛的支持。 XML 可以说比 JSON 更灵活地表示您的数据。我会从这里开始并在支持方面工作,可能会添加 JSON。然而,这不是我所说的以客户为中心的方法。如果这是平台的核心功能,那么您应该真正对客户的需求感兴趣。嘿,即使你今天做一个快速调查,至少你会有一个更合理的起点。如果您认识合作伙伴的任何开发人员,那么您可能能够从他们使用的工具和语言中推测出他们更喜欢什么(甚至查看他们的招聘广告可能会让您了解他们是 .NET 还是 Java购物 - 虽然远非科学方法)。