使用没有环回的Loopback数据源和模型

我将loopback的数据源和模型设想为消耗 API的有用工具,而不仅仅是自动创build REST API。

假装我正在使用Spotify的 API。 我想要一个在Spotify上查找用户信息的命令行应用程序。 我可以编写loopback模型来使用say /v1/albums

我希望我可以创build一个Album模型,并使用它像Album.find('Thriller');

想要的是创build一个REST API。 我只想要一个更好的语言来消费其他人的API,如FacebookInstagram

LoopBack模型只是一个configuration文件和一个模型文件中的函数集合。 所有的端点都是由LoopBack本身生成的,因此它们本身并不是很有帮助。 也就是说,您可以使用资源pipe理器组件 (在使用脚手架CLI: slc loopback时默认安装)为每个模型生成一个swagger规范。

只需启动您的LoopBack应用程序,然后导航到:

 http://localhost:3000/explorer/resources/MyModels 

然后你可以在任何支持该标准的框架中使用swagger规范。

Loopback具有非数据库连接器的概念,包括REST连接器 。 从文档:

LoopBack支持多种连接器,以便将数据库之外的系统后端连接起来。

这些types的连接器通常根据底层系统实现特定的方法。 例如,REST连接器委托调用REST API,而Push连接器与iOS和Android推送通知服务集成。

这是从Spotify的文档(我还没有尝试过这个)改编:

datasources.json

 Album": { "name": "spotify", "connector": "rest", "debug": false, "options": { "headers": { "accept": "application/json", "content-type": "application/json" }, "strictSSL": false }, "operations": [ { "template": { "method": "GET", "url": "https://api.spotify.com/v1/albums/", "query": { "album": "{album}" }, "options": { "strictSSL": true, "useQuerystring": true } }, "functions": { "find": ["album"] } } ] } 

然后你可以用代码调用这个api:

app.dataSources.Album.find('thriller', processResponse);

一种好的方法是使用他们的rest连接器,它允许你将请求和响应模板模板化到外部API,对返回的数据使用模型validation,然后允许你将新的内容保存到数据库中。