Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

208
Views
Usando http rest apis con angular 2

Entonces, estoy siguiendo las guías angulares 2 en su sitio web a través de mecanografiado y estoy atascado en la integración de http api. Estoy tratando de crear una aplicación simple que pueda buscar una canción a través de la API de SoundCloud, sin embargo, tengo dificultades para implementar y comprender cómo comenzar y los recursos en línea lo hacen de muchas maneras diferentes (creo que lo hacen con los cambios rápidos de sintaxis angular 2 en mis tiempos).

Así que en este momento mi proyecto se ve así

 app components home home.component.ts ... search search.component.ts ... app.ts ... services soundcloud.ts bootstrap.ts index.html

No pasa nada especial en el ejemplo, los archivos principales serían

aplicación.ts

 import {Component, View} from 'angular2/core'; import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router'; import {HomeComponent} from './home/home.component'; import {SearchComponent} from './search/search.component'; @Component({ selector: 'app', templateUrl: 'app/components/app.html', directives: [ROUTER_DIRECTIVES] }) @RouteConfig([ {path: '/home', name: 'Home', component: HomeComponent, useAsDefault: true}, {path: '/search', name: 'Search', component: SearchComponent} ]) export class App { }

bootstrap.ts

 import {App} from './components/app'; import {bootstrap} from 'angular2/platform/browser'; import {ROUTER_PROVIDERS} from 'angular2/router'; bootstrap(App, [ ROUTER_PROVIDERS ]);

Y estaba tratando de descifrar soundcloud.ts , sin embargo, no puedo y hay errores en el siguiente enfoque, es decir, @Inject no se encuentra (supongo que estoy usando una sintaxis obsoleta aquí). Esencialmente, me gustaría usar el servicio de soundcloud para las llamadas de API dentro del componente de búsqueda de formularios de mi aplicación.

 import {Injectable} from 'angular2/core' import {Http} from 'angular2/http' @Injectable() export class SoundcloudService { http : Http constructor(@Inject(Http) http) { this.http = http; } }

Soundcloud api no está incluido aquí ya que no puedo obtener los conceptos básicos primero.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Bueno, buena respuesta proporcionada por @langley, pero me gustaría agregar algunos puntos más para publicar como respuesta.

En primer lugar, para consumir las API Rest, necesitamos importar los módulos Http y HTTP_PROVIDERS . Como estamos hablando de Http, el primer paso es obviamente.

 <script src="node_modules/angular2/bundles/http.dev.js"></script>

Pero sí, es una buena práctica proporcionar HTTP_PROVIDERS en el archivo de arranque porque de esta manera se proporciona a nivel global y está disponible para todo el proyecto de esta manera.

 bootstrap(App, [ HTTP_PROVIDERS, some_more_dependencies ]);

y las importaciones a incluir son....

 import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from 'angular2/http';

A veces, necesitamos proporcionar Headers mientras consumimos API para enviar access_token y muchas más cosas que se hacen de esta manera:

 this.headers = new Headers(); this.headers.append("Content-Type", 'application/json'); this.headers.append("Authorization", 'Bearer ' + localStorage.getItem('id_token'))

Ahora a RequestMethods : básicamente usamos GET, POST pero hay algunas opciones más que puedeconsultar aquí...

Podemos usar métodos de solicitud como RequestMethod.method_name

Hay algunas opciones más para las API, pero por ahora he publicado un ejemplo para la solicitud POST que lo ayudará mediante el uso de algunos métodos importantes:

 PostRequest(url,data) { this.headers = new Headers(); this.headers.append("Content-Type", 'application/json'); this.headers.append("Authorization", 'Bearer ' + localStorage.getItem('id_token')) this.requestoptions = new RequestOptions({ method: RequestMethod.Post, url: url, headers: this.headers, body: JSON.stringify(data) }) return this.http.request(new Request(this.requestoptions)) .map((res: Response) => { if (res) { return [{ status: res.status, json: res.json() }] } }); }

puede consultar aquí también para obtener más información.

ver también -

  • Cómo lidiar con códigos de estado http que no sean 200 en Angular 2.

Actualizar

la importación ha cambiado de

 import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from 'angular2/http';

para

 import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from '@angular/http';
over 4 years ago · Santiago Trujillo Report

0

Necesitas agregar esta línea:

<script src="node_modules/angular2/bundles/http.dev.js"></script>

en su archivo index.html.

Debe agregar HTTP_PROVIDERS :

 bootstrap(App, [ ROUTER_PROVIDERS, HTTP_PROVIDERS ]);

en su archivo boot.ts/bootstrap.ts e importarlos, por supuesto.

Debe importar @Inject en su archivo de clase DojoService :

 import {Injectable, Inject} from 'angular2/core'

Al igual que importó @Injectable .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!