2016-12-02 2 views
0

Я создаю запрос POST, но я также необходим указать «ссылку отношение типа» .so тело должно выглядеть следующим образом:Настройка запроса POST в угловом 2

{ 
       "_links":{ 
        "type":{ 
         "href":"http://example.co.uk/rest/type/node/article" 
        } 
       }, 
       "title":[{"value": "Blog title"}], 
       "body":[{"value": "Body content"}] 
      } 

До сих пор я m получать заголовок и тело от ввода пользователем (форма), но я не знаю, как добавить этот новый объект в свой запрос.

Это моя служба:

createBlog(blog: Blog): Observable<any>{ 
      let url = this.API_URL + "entity/node"; 
      return this.http.post(url, blog, {headers:this.headers}).map(res => res.json()).catch(err => { 

      return Observable.throw(err); 
      }); 
     } 

С этим я плохой запрос

400 Bad bequest 
Response {_body: "{"error":"The type link relation must be specified."}", status: 400, ok: false, statusText: "Bad Request", headers: Headers…} 

Любые намеки?

ответ

1

Вы должны, вероятно, расширить объект блога, как это:

createBlog(blog: Blog): Observable<any>{ 
    blog._links = {type : { href: 'http://example.co.uk/rest/type/node/article' } }; 
    .... 
} 

И для того, чтобы работать, вы должны изменить модель блога, чтобы содержать _link свойство типа объекта.

export class Blog { 
    _links: Object; 
    title: Array<Object>; 
    ... 
} 
+0

Похоже работает, но теперь я получаю 422 (Unprocessable Entity) –

+0

Это, вероятно, проблема конечной точки и, возможно, из-за некоторых других параметров в запросе. Проверьте, какие параметры необходимо отправить в конечную точку. –

+0

Немного странно, поскольку ни один из параметров не требуется в конечной точке, и у меня нет этой проблемы с помощью Postman. Но, тем не менее, вы ответили на мой первоначальный вопрос, чтобы я принял его. Спасибо вам за помощь. –

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