首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未在代理api服务器中生成RESTful api的CRUD方法和端点

未在代理api服务器中生成RESTful api的CRUD方法和端点
EN

Stack Overflow用户
提问于 2016-10-22 15:45:16
回答 1查看 392关注 0票数 0

我正在尝试代理服务器(http://www.swapi.co/api/starships用于实践,然后是Salesforce用于生产)。这将是一个反应本地应用程序的移动后端。我在这里跟踪文档:http://loopback.io/doc/en/lb2/REST-connector.html#resource-operations。然而,当使用生成器创建一个使用CRUD操作和星舰模型的“星舰”数据源时,当我试图使用内置的资源管理器来探索api时,什么都不会显示出来。当代理一个RESTful API时,我想使用RESTful API公开它,这在RESTful中还可用吗?

下面是用于查看api的资源管理器的屏幕截图:

以下是我正在采取的步骤:

代码语言:javascript
复制
$ slc loopback:datasource
? Enter the data-source name: starship
? Select the connector for starship: REST Services (supported by StrongLoop)
? Base URL for the REST service: http://www.swapi.co/api/starship
? Default options for the request: [left blank, hit enter]
? An array of operation templates: [left blank, hit enter]
? Use default CRUD mapping: (y/N) Y

$ slc loopback:model
? Enter model name: Starship
? Select data-source to attach Starship to: starship (rest)
? Select model's base class: Model
? Expose Person via the REST API? (Y/n) Y
? Custom plural form (used to build REST URL): starships
? Common model or server only? common

Let's add some Starship properties now.

Enter an empty property name when done.
? Property name: [left empty, hit enter]

$ npm start

> wfsapi@1.0.0 start /Users/me/projects/wfsapi
> node .

Web server listening at: http://0.0.0.0:3000
Browse your REST API at http://0.0.0.0:3000/explorer

但是,当我导航到资源管理器时,只有用户api才会出现,而不是星舰。对我可能做错了什么有什么想法吗?下面是我可以找到的生成文件的内容:

通用/模型/星舰.

代码语言:javascript
复制
'use strict';

module.exports = function (Starship) {

};

通用/型号/Starship.json

代码语言:javascript
复制
{
    "name": "Starship",
    "plural": "starships",
    "base": "Model",
    "idInjection": true,
    "options": {
        "validateUpsert": true
    },
    "properties":  {},
    "validations":  [],
    "relations": {},
    "acls": [],
    "methods": {}
}

服务器/数据源.server

代码语言:javascript
复制
{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "starship": {
    "name": "starship",
    "baseURL": "http://www.swapi.co/api/starships",
    "crud": true,
    "connector": "rest"
  }
}

服务器/模型-config.json

代码语言:javascript
复制
{ 
  ... 
  "Starship": {
    "datasource": "starship",
    "public": true
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-24 22:23:05

问题是,您使用的是模型,而不是PersistedModel。

模型没有可访问的远程方法。

您需要将公共/模型/starship.json更改为

代码语言:javascript
复制
{
     "name": "Starship",
     "plural": "starships",
     "base": "PersistedModel",
     "idInjection": true,
     "options": {
         "validateUpsert": true
     },
     "properties":  {},
     "validations":  [],
     "relations": {},
     "acls": [],
     "methods": {}
}

有关更多信息,请查看http://apidocs.strongloop.com/loopback/#persistedmodel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40194001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档