खोज…


टिप्पणियों

मैंने मुख्य रूप से इस विषय का अनुरोध किया क्योंकि मुझे Angular2-In-Memory-Web-Api के साथ कई API रूट सेट करने के बारे में कोई जानकारी नहीं मिली। अपने आप को यह पता लगाने के लिए समाप्त हो गया, और लगा कि यह दूसरों के लिए उपयोगी हो सकता है।

बुनियादी ढांचा

नकली data.ts

नकली एपीआई डेटा बनाएँ

export class MockData {
  createDb() {
    let mock = [
      { id: '1', name: 'Object A' },
      { id: '2', name: 'Object B' },
      { id: '3', name: 'Object C' },
      { id: '4', name: 'Object D' }
    ];
    
    return {mock};
  }
}

main.ts

निर्भरता इंजेक्टर XHRBackend अनुरोधों के लिए InMemoryBackendService प्रदान करते हैं। इसके अलावा, एक वर्ग प्रदान करें जिसमें एक भी शामिल है

createDb()
फ़ंक्शन (इस मामले में, MockData) SEED_DATA अनुरोधों के लिए नकली एपीआई मार्गों को निर्दिष्ट करता है।

import { XHRBackend, HTTP_PROVIDERS } from '@angular/http';
import { InMemoryBackendService, SEED_DATA } from 'angular2-in-memory-web-api';
import { MockData } from './mock-data';
import { bootstrap } from '@angular/platform-browser-dynamic';

import { AppComponent } from './app.component';

bootstrap(AppComponent, [
    HTTP_PROVIDERS,
    { provide: XHRBackend, useClass: InMemoryBackendService },
    { provide: SEED_DATA,  useClass: MockData }
]);

mock.service.ts

निर्मित एपीआई मार्ग के लिए एक अनुरोध प्राप्त करने का उदाहरण

import { Injectable }     from '@angular/core';
import { Http, Response } from '@angular/http';
import { Mock } from './mock';

@Injectable()
export class MockService {
  // URL to web api
  private mockUrl = 'app/mock';

  constructor (private http: Http) {}

  getData(): Promise<Mock[]> {
    return this.http.get(this.mockUrl)
                    .toPromise()
                    .then(this.extractData)
                    .catch(this.handleError);
  }

  private extractData(res: Response) {
    let body = res.json();
    return body.data || { };
  }

  private handleError (error: any) {
    let errMsg = (error.message) ? error.message :
      error.status ? `${error.status} - ${error.statusText}` : 'Server error';
    console.error(errMsg);
    return Promise.reject(errMsg);
  }
}

कई टेस्ट एपीआई रूट की स्थापना

नकली data.ts

export class MockData {
    createDb() {
        let mock = [
            { id: '1', name: 'Object A' },
            { id: '2', name: 'Object B' },
            { id: '3', name: 'Object C' }
        ];
        
        let data = [
            { id: '1', name: 'Data A' },
            { id: '2', name: 'Data B' },
            { id: '3', name: 'Data C' }
        ];

        return { mock, data };
    }
}

अब, आप दोनों के साथ बातचीत कर सकते हैं

app/mock
तथा
app/data
उनके संबंधित डेटा को निकालने के लिए।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow