Обновление API в приложении Angular нарушает работу службыC#

Место общения программистов C#
Ответить
Anonymous
 Обновление API в приложении Angular нарушает работу службы

Сообщение Anonymous »


Я изучал Angular и ASP.NET на курсе Udemy, и проект, над которым я работаю, постоянно ломается всякий раз, когда я запускаю npx ng-getopenapi-gen на терминале. Я получаю эту ошибку:
Изображение


Мое текущее решение — заменить мою версию службы полета на версию, которая находится на сервере git. Пока я не обновляю API, я не получаю этой ошибки, но мне нужно, чтобы некоторые изменения заработали. Я просто не знаю, как это происходит.

/* tslint:disable */ /* eslint-отключить */ import {Injectable} из '@angular/core'; импортировать { HttpClient, HttpResponse } из '@angular/common/http'; импортировать { BaseService } из '../base-service'; импортировать {ApiConfiguration} из '../api-configuration'; импортировать { StrictHttpResponse } из '../strict-http-response'; импортировать { RequestBuilder } из '../request-builder'; импортировать { Observable } из 'rxjs'; импортировать {карту, фильтр} из 'rxjs/operators'; импортировать { BookDto } из '../models/book-dto'; импортировать { FlightRm } из '../models/flight-rm'; @Инъекционный({ предоставлено: 'корень', }) класс экспорта FlightService расширяет BaseService { конструктор( конфигурация: АпиКонфигурация, http: HttpClient ) { супер (конфигурация, http); } /** * Часть пути для операции searchFlight. */ статический только для чтения SearchFlightPath = '/Flight'; /** * Этот метод обеспечивает доступ к полному `HttpResponse`, позволяя получить доступ к заголовкам ответов. * Чтобы получить доступ только к телу ответа, используйте вместо него `searchFlight$Plain()`. * * Этот метод не ожидает никакого тела запроса. */ searchFlight$Plain$Response(params?: { }): Observable { const rb = новый RequestBuilder(this.rootUrl, FlightService.SearchFlightPath, 'get'); если (параметры) { } верните этот.http.request(rb.build({ Тип ответа: 'текст', принять: 'текст/обычный' })).трубка( filter((r: Any) => r экземпляр HttpResponse), map((r: HttpResponse) => { верните r как StrictHttpResponse; }) ); } /** * Этот метод обеспечивает доступ только к телу ответа. * Чтобы получить доступ к полному ответу (например, для заголовков), вместо этого используйте `searchFlight$Plain$Response()`. * * Этот метод не ожидает никакого тела запроса. */ searchFlight$Plain(params?: { }): Observable { верните this.searchFlight$Plain$Response(params).pipe( map((r: StrictHttpResponse) => r.body as Array) ); } /** * Этот метод обеспечивает доступ к полному `HttpResponse`, позволяя получить доступ к заголовкам ответов. * Чтобы получить доступ только к телу ответа, используйте вместо него `searchFlight()`. * * Этот метод не ожидает никакого тела запроса. */ searchFlight$Response(params?: { }): Observable { const rb = новый RequestBuilder(this.rootUrl, FlightService.SearchFlightPath, 'get'); если (параметры) { } верните этот.http.request(rb.build({ Тип ответа: 'json', принять: 'текст/json' })).трубка( filter((r: Any) => r экземпляр HttpResponse), map((r: HttpResponse) => { верните r как StrictHttpResponse; }) ); } /** * Этот метод обеспечивает доступ только к телу ответа. * Чтобы получить доступ к полному ответу (например, для заголовков), вместо этого используйте `searchFlight$Response()`. * * Этот метод не ожидает никакого тела запроса. */ searchFlight(params?: { }): Observable { верните this.searchFlight$Response(params).pipe( map((r: StrictHttpResponse) => r.body as Array) ); } /** * Часть пути для операции bookFlight. */ статический BookFlightPath только для чтения = '/Flight'; /** * Этот метод обеспечивает доступ к полному `HttpResponse`, позволяя получить доступ к заголовкам ответов. * Чтобы получить доступ только к телу ответа, используйте вместо него `bookFlight()`. * * Этот метод отправляет `application/*+json` и обрабатывает тело запроса типа `application/*+json`. */ bookFlight$Response(params?: { тело?: BookDto }): Observable { const rb = новый RequestBuilder(this.rootUrl, FlightService.BookFlightPath, 'post'); если (параметры) { rb.body(params.body, 'application/*+json'); } верните этот.http.request(rb.build({ Тип ответа: 'текст', принимать: '*/*' })).трубка( filter((r: Any) => r экземпляр HttpResponse), map((r: HttpResponse) => { return (r as HttpResponse).clone({body: undefined}) as StrictHttpResponse; }) ); } /** * Этот метод обеспечивает доступ только к телу ответа. * Чтобы получить доступ к полному ответу (например, для заголовков), вместо этого используйте `bookFlight$Response()`. * * Этот метод отправляет `application/*+json` и обрабатывает тело запроса типа `application/*+json`. */ bookFlight(params?: { тело?: BookDto }): Observable { верните this.bookFlight$Response(params).pipe( карта((r: StrictHttpResponse) => тело как пустота) ); } /** * Часть пути для операции findFlight. */ статический только для чтения FindFlightPath = '/Flight/{id}'; /** * Этот метод обеспечивает доступ к полному `HttpResponse`, позволяя получить доступ к заголовкам ответов. * Чтобы получить доступ только к телу ответа, используйте вместо него `findFlight$Plain()`. * * Этот метод не ожидает никакого тела запроса. */ findFlight$Plain$Response(params: { идентификатор: строка; }): Observable { const rb = новый RequestBuilder(this.rootUrl, FlightService.FindFlightPath, 'get'); если (параметры) { rb.path('id', params.id, {}); } верните этот.http.request(rb.build({ Тип ответа: 'текст', принять: 'текст/обычный' })).трубка( filter((r: Any) => r экземпляр HttpResponse), map((r: HttpResponse) => { верните r как StrictHttpResponse; }) ); } /** * Этот метод обеспечивает доступ только к телу ответа. * Чтобы получить доступ к полному ответу (например, для заголовков), вместо этого используйте `findFlight$Plain$Response()`. * * Этот метод не ожидает никакого тела запроса. */ findFlight$Plain(params: { идентификатор: строка; }): Observable { верните this.findFlight$Plain$Response(params).pipe( map((r: StrictHttpResponse) => r.body as FlightRm) ); } /** * Этот метод обеспечивает доступ к полному `HttpResponse`, позволяя получить доступ к заголовкам ответов. * Чтобы получить доступ только к телу ответа, используйте вместо него findFlight(). * * Этот метод не ожидает никакого тела запроса. */ findFlight$Response(params: { идентификатор: строка; }): Observable { const rb = новый RequestBuilder(this.rootUrl, FlightService.FindFlightPath, 'get'); если (параметры) { rb.path('id', params.id, {}); } верните этот.http.request(rb.build({ Тип ответа: 'json', принять: 'текст/json' })).трубка( filter((r: Any) => r экземпляр HttpResponse), map((r: HttpResponse) => { верните r как StrictHttpResponse; }) ); } /** * Этот метод обеспечивает доступ только к телу ответа. * Чтобы получить доступ к полному ответу (например, для заголовков), вместо этого используйте `findFlight$Response()`. * * Этот метод не ожидает никакого тела запроса. */ findFlight(параметры: { идентификатор: строка; }): Observable { верните this.findFlight$Response(params).pipe( map((r: StrictHttpResponse) => r.body as FlightRm) ); } } это код рейса. и вот здесь перерывы :

import { Component, OnInit } from '@angular/core'; импортировать { FlightService } из './../api/services/flight.service'; // Вот как мы добавляем наши элементы openAPI. импортировать { FlightRm } из '../api/models'; // Вот как мы добавляем наши элементы openAPI. @Компонент({ селектор: 'app-search-flights', templateUrl: './search-flights.comComponent.html', styleUrls: ['./search-flights.comComponent.css'] }) класс экспорта SearchFlightsComponent реализует OnInit { // Это один из способов создания массива строк в TS. //Результат поиска: любой = [ // «Американские авиалинии», // "British Airways", // «Люфтганза» //] // Это будет отредактировано, и ниже показан лучший способ сделать это. // Ну, это скорее правильный способ заставить это работать. // Этот код будет удален. Я отредактирую его, чтобы вместо этого мы могли использовать информацию REST API. searchResult: FlightRm[] = [] //= [ // Поместим всю структуру класса в фигурные скобки, чтобы заполнить ее. Вот так. // Все, что находится в скобках, также отделяется запятой и выходом, если она тоже. // Мы также меняем это, поскольку получаем результаты поиска из открытого API. /* { авиакомпания: «Американ Эйрлайнз», оставшеесяКоличество мест: 500, отправление: {время: Date.now().toString(), место: «Лос-Анджелес» }, прибытие: { время: Date.now().toString(), место: «Стамбул» }, цена: "350", }, { авиакомпания: «Дойче БА», оставшеесяКоличество мест: 60, отправление: {время: Date.now().toString(), место: «Мюнхен» }, прибытие: { время: Date.now().toString(), место: «Схипхол» }, цена: "600", }, { авиакомпания: «Бритиш Эйрвейз», оставшеесяКоличество мест: 60, отправление: {время: Date.now().toString(), место: «Лондон, Англия» }, прибытие: { время: Date.now().toString(), место: «Виццола-Тичино» }, цена: "600", } */ // ] // По какой-то причине это не было загружено. // Либо используется другая версия // или в уроке есть какое-то дополнение, которое помогает. // Рассмотрю дополнения, которые помогают с angular. // Служба полета добавляется в наш конструктор. Это то, что мы называем openapi. конструктор (частный FlightService: FlightService) { } //Результат поиска: FlightRm[] = []; ngOnInit(): пустота { //это.поиск(); } // Создание метода поиска // раньше это был «полет полета», но мы изменили его на «поиск полета», потому что создали собственное имя метода. см. конец шестого дня. поиск() { this.flightService.searchFlight({}) .subscribe(response => this.searchResult = ответ, this.handleError) // Этот вызов является своего рода асинхронным, поскольку мы подписываемся на вызов и ждем его. } // r — ответ. Мы можем назвать это так для пояснения // Как мы можем обрабатывать ошибки после запятой // На момент ввода этот handleError не реализован, но это будет важно. // здесь мы создадим метод. частный handleError (ошибка: любой) { // Дополнительная обработка ошибок ответа console.log("Ошибка ответа. Статус: ", err.status); console.log("Ошибка ответа. Статус: Текст: ", err.statusText); console.log(ошибка) } // Мы можем отправить это сообщение об ошибке в окно сообщения об ошибке для пользователя make som // своего рода отладка для разработчика. // } /* Убираем тезисы, потому что они нам не нужны, но вы добавляете их вручную. интерфейс экспорта FlightRm { авиакомпания: строка; прибытие: TimePlaceRm; отправление: TimePlaceRm; цена: строка; оставшеесяNumberOfSeats: число; } интерфейс экспорта TimePlaceRm { место: строка; время: строка; } */ Пожалуйста, дайте мне знать, что я делаю неправильно.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»