2015-12-16 5 views
0

Я попытался создать модель и подключиться к своему тестовому серверу API.Loopback REST connector POST

Вот конфигурация REST DataSource:

"postsREST": { 
"name": "postsREST", 
"connector": "rest", 
"operations": [{ 
    "template": { 
     "method": "GET", 
     "url": "http://localhost:3001/posts" 
    }, 
    "functions": { 
     "find": [] 
    } 
}, { 
    "template": { 
     "method": "POST", 
     "url": "http://localhost:3001/posts", 
     "headers": { 
      "accept": "application/json", 
      "content-type": "application/json" 
     }, 
     "query": { 
      "title": "{^title}", 
      "author": "{^author}" 
     }, 
     "body": { 
      "title": "{^title}", 
      "author": "{^author}" 
     } 
    }, 
    "functions": { 
     "create": [ 
      "title", 
      "author" 
     ] 
    } 
}] 

}

Проблема заключается в том, что, когда я использую проводник, сформированный URL запроса заключается в следующем:

http://localhost:3000/api/posts/create?title=f&author=f 

Вместо:

http://localhost:3000/api/posts 

Что я делаю неправильно? Может быть, есть новая документация?

Спасибо.

+0

Я заметил, что вы используете порт 3001 ('' localhost: 3001''') в своем файле и порт 3000 в своем браузере, это опечатка? – Overdrivr

+0

Разъем источника данных REST предназначен для использования вашими моделями для доступа к внешнему API ... похоже, что он обращается к одной и той же модели круговым способом. Что именно вы пытаетесь достичь? – jakerella

+0

Конечно, он будет внешним. Это только пример. Проблема заключается в том, что post url ведет себя как get, как вы можете видеть из кода. URL-адрес является локальным (порт 3000), а 3001 - внешним. – user3712353

ответ

1

Вы должны использовать form вместо req или body, если вы хотите, чтобы параметры не были частью запроса-url. req или body добавят ваши параметры в URL-адрес запроса.

Использование form будет отправлять ваши параметры точно так же, как форма отправляется с использованием метода POST и, следовательно, как часть тела запроса.

Итак, попробуйте следующий способ для раздела в коде template:

"template": { 
     "method": "POST", 
     "url": "http://localhost:3001/posts", 
     "headers": { 
      "accept": "application/json", 
      "content-type": "application/json" 
     }, 
     "form": { 
      "title": "{^title}", 
      "author": "{^author}" 
     } 
    }, 

Кроме того, я не вижу никакого смысла в добавлении тех же параметров в req и body атрибуты обоих.

Смежные вопросы