2016-10-26 1 views
0

Я создал клиентский скрипт Angular2 с редактором Swagger, расположенный по адресу http://editor.swagger.io. API отлично работает со всеми конечными точками api, которые не относятся к типу POST, хотя конечные точки POST никогда не отправляются на сервер.Редактор swagger, создающий машинописный клиент, который не будет POST

Достигнут следующий метод в сгенерированном машинописном тексте, а оператор console.log показывает, что заголовки устанавливаются, хотя на самом деле ничего не отправляется на сервер.

Это говорит о том, что что-то не так с звонком this.http.request.

public snapshotsFoo (data: Array<number>, extraHttpRequestParams?: any) : Observable<models.Snapshot> { 
    const path = this.basePath + '/Snapshots/foo'; 

    let queryParameters = new URLSearchParams(); 
    let headerParams = this.defaultHeaders; 
    headerParams.set("Content-Type", "application/json"); 
    // verify required parameter 'data' is not null or undefined 
    if (data === null || data === undefined) { 
     throw new Error('Required parameter data was null or undefined when calling snapshotsFoo.'); 
    } 
    let requestOptions: RequestOptionsArgs = { 
     method: 'POST', 
     headers: headerParams, 
     search: queryParameters 
    }; 
    requestOptions.body = JSON.stringify(data); 

    console.log('I am in foo', path, requestOptions); 

    return this.http.request(path, requestOptions) 
     .map((response: Response) => { 
      if (response.status === 204) { 
       return undefined; 
      } else { 
       return response.json(); 
      } 
     }); 
} 

Я могу успешно использовать конечную точку с чванством Ui (http://0.0.0.0:5000/api/ui), от почтальона и из командной строки с $ curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '[7,7,8]' 'http://0.0.0.0:5000/api/Snapshots/foo'

Хотя, когда я пытаюсь достичь этой конечной точки, используя сгенерированную машинопись, ничего отправляется на сервер и не возникает ошибок.

ответ

0

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

Разбитый ситуация в моем компоненте:

... 
this.snapshotApi.snapshotsFoo([6,7,8]); 
... 

неподвижная ситуация в моем компоненте:

... 
let whocares = this.snapshotApi.snapshotsFoo([6,7,8]); 

whocares.subscribe(res => { 
    console.log('i dont even'); 
} 

Не стесняйтесь комментировать то, что происходит, черт возьми. Теперь работает POST на моем сервере. Наблюдение за поведением ...

+0

editor.swagger.io использует генератор.swagger.io для создания клиентов API, заглушек сервера. Пожалуйста, откройте проблему в https://github.com/swagger-api/swagger-codegen (который охватывает онлайн-генератор на generator.swagger.io) –

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