我想知道Netsuite是否提供REST ful api?目前我正在将我的应用程序(java)与基于soap的网络服务集成。我已经做了一些研究,但没有得到有用的信息。如果它确实如此,我在哪里可以找到api?
最佳答案
像躲避瘟疫一样避免使用 SuiteTalk SOAP Web 服务 API;它只会浪费你的时间。仅当您可以接受 SOAP API 的非性能、不介意与严重错误的 SOAP API 交互、有足够的时间来实现强大的错误处理以解决随机 SOAP 错误和并发错误时,Netsuite SOAP API 的使用才是可行的。您需要很多时间来开发强大的容错能力。所有的时间都将是浪费时间;因为无论花多少时间,SOAP API 的性能都无法让人接受。
在写入数据时,RESTlet 优于 SOAP API; RESTlet 的写入性能往往稍高一些(尽管响应仍然非常慢并且不适合面向客户的应用程序)。
RESTlet 是将数据写入 Netsuite 的可行的短期解决方案。它本质上是一个 JS 脚本,允许您设置基于 token 的身份验证穷人的 JSON 端点;您可以在其中发送 JSON 请求正文并获取 JSON 响应正文。在不需要通过 ReSTLet 写入太多数据的情况下(例如 SalesOrders),使用是合理的。基于队列的系统和具有重试功能的后台作业将缓解随机 Netsuite 错误问题(并发错误、超时等)。
如果您必须经常写入一堆 Netsuite 实体,并且使用 Netsuite 作为数据的真实来源,而不是尝试在 Netsuite 之上构建整个 REST(如 JSON API);我建议实现一个发布/订阅服务,其中 Netsuite 将事件发布到您的应用程序/API 订阅的外部服务。您的应用程序还可以将突变发布到 Netsuite 订阅的 channel 。这样,发送到 Netsuite 的数据突变就可以发生在中间层,从而降低了复杂性。
要为外部应用程序获取 Netsuite 数据,最有效的可用方法似乎是 Netsuite ODBC 数据库驱动程序;它提供与 Netsuite 数据库只读 TableView 的直接连接。对 Postgres 或 MySQL 中具有相同架构的一组项目进行简单的选择查询通常需要 0.5 毫秒或更短的时间;通常需要 15 秒到略多于 100 秒的时间才能返回。
使用 NS ODBC 驱动程序时,Netsuite 中的连接超时和其他错误仍然很常见。尽管查询结果很慢,但在 14 秒内检索一组 5000 个项目所需的所有数据远远优于通过 Netsuite 的 SOAP API 获取相同数据所需的几个小时。
关于netsuite - netsuite 有 RESTful API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26214549/