Angular에서 동영상 가져오기 서비스 만들기
우리는 API 호출을 수행하고 이러한 모든 호출을 수행하는 사용자 정의 서비스를 만드는 방법을 배울 것입니다.
최종 결과는 다음과 같습니다.
HttpClient 모듈 사용
요청을 하기 위해 우리는 HttpClient 모듈을 사용할 것입니다.
전체 애플리케이션이 이를 활용할 수 있도록 이 모듈을
app.module.ts
에 로드할 것입니다.파일 맨 위에서 가져오기를 정의하여 시작하겠습니다.
import { HttpClientModule } from "@angular/common/http";
그런 다음
BrowserModule
뒤에 실제 가져오기를 배치할 수 있습니다.@NgModule({
declarations: [
// All declarations
],
imports: [
BrowserModule,
HttpClientModule,
// Other imports
],
providers: [],
bootstrap: [AppComponent]
})
서비스 만들기
이제 API와 통신할 서비스를 만들 수 있습니다.
즐겨찾는 터미널을 열고 프로젝트 폴더에서 다음 명령을 실행합니다.
Typescript가 이것을 활용할 수 있도록 먼저 영화 모델을 만들어 봅시다.
ng generate class movie
편집기에서 movie.ts 파일을 열고 다음과 같이 만듭니다.
export class Movie {
Poster: string;
Title: string;
Type: string;
Year: string;
imdbID: string;
}
이제 서비스를 생성하자
ng generate service movie
그러면
movie.service.ts
파일이 생성됩니다.선택한 편집기에서 이 파일을 열고 몇 가지 기본 사항을 정의하여 시작하겠습니다.
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Movie } from './movie';
export type ApiResponse = {
Response: string;
Search: Movie[];
totalResults: string;
};
@Injectable({
providedIn: 'root'
})
export class MovieService {
apiURL: string = 'http://www.omdbapi.com/?apikey={key}';
constructor(private httpClient: HttpClient) {}
}
영화를 얻기 위해 OMDBapi을 사용할 것입니다. 웹 사이트에서 여전히 무료 APIKey를 얻을 수 있습니다.
이 예에서는 이 URL을 파일에 배치하고 실제 예에서는 env 파일을 키로 사용하거나 상수 파일을 URL 저장에 사용합니다.
이제 방법을 만들 수 있습니다. 특정 영화를 검색하는 검색 방법이 될 것입니다.
searchMovie(name: string) {
return this.httpClient.get<any>(`${this.apiURL}&s=${name}`);
}
서비스 호출
이제 우리는 물론 서비스를 호출하고 우리가 얻은 영화를 보여주고 싶습니다.
welcome.component.ts
파일을 열고 가져오기에서 서비스를 로드합니다.import { MovieService } from '../movie.service';
이제 구성 요소에 주입해야 하지만 생성자에 추가해야 합니다.
constructor(private movieService: MovieService) { }
또한 영화 변수를 영화 클래스의 배열로 정의해 보겠습니다.
movies: Movie[];
ngOnInit
에서 서비스에 전화를 걸어 배트맨 영화를 요청할 것입니다.ngOnInit(): void {
this.movieService.searchMovie('Batman').subscribe(result => {
this.movies = result.Search;
});
}
서비스를 호출하고 결과를 구독합니다. 차례로 영화 변수를 result.Search 값으로 설정합니다.
이제 영화를 반영하도록
HTML
파일을 조정하겠습니다.<div class="grid grid-cols-5">
<div class="max-w-sm rounded overflow-hidden shadow-lg" *ngFor="let movie of movies">
<img class="w-full" [src]="movie.Poster" [alt]="movie.Title">
<div class="px-6 py-4">
<div class="font-bold text-xl mb-2">{{ movie.Title }}</div>
</div>
</div>
</div>
이제 초기 영화 검색 앱이 생겼습니다!
당신한테 달렸습니다
이제 이 코드를 가져오고 검색할 수 있는 입력 필드 또는 특정 영화를 만드는 것은 사용자에게 달려 있습니다.
포스터를 클릭하면 이 영화에 대한 자세한 정보를 볼 수 있습니다.
이것으로 무엇을 만들었는지 알려주세요!
GitHub에서 이 프로젝트의 일부를 찾을 수 있습니다.
읽어주셔서 감사합니다. 연결합시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(Angular에서 동영상 가져오기 서비스 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/creating-a-movie-fetching-service-in-angular-338h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)