如何为angular 2 app编写RESTful API规范?

时间:2018-01-23 19:45:34

标签: angular

我是角度区域的新手。我使用angular 2创建了自助服务亭,现在我想编写RESTful API来与asp.net应用程序进行通信。我如何编写RESTful API规范?

4 个答案:

答案 0 :(得分:0)

首先使用ASP.NET创建MVC Web API项目。方法在控制器中作为REST API工作。但是你必须为你的角应用程序返回JSON结果。

您可以在绑定到Angular之前使用POSTMan测试API。

答案 1 :(得分:0)

步骤-1 - >第一步是我们需要在我们的应用程序模块中导入@NgModule装饰器的元数据中配置HttpModule。

import { BrowserModule } from '@angular/platform-browser'; 
import { HttpModule } from '@angular/http';

@NgModule({
---------
  imports: [     
        BrowserModule,
    HttpModule
  ]
---------
})

步骤-2 - >我们应该在服务类而不是组件中执行服务器通信。这种方法在设计上是优选的。在服务类中,我们将使用依赖注入来获取角度Http的实例,如下所示。

constructor(private http:Http) { } 

步骤-3 - >现在我们准备发布了

Observable<Response> ob = this.http.post(this.url, book, options);

示例 - &gt;

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/toPromise';

import { Book } from './book';

@Injectable()
export class BookService {
    url = "api/books";
    constructor(private http:Http) { }
    getBooksWithObservable(): Observable<Book[]> {
        return this.http.get(this.url)
           .map(this.extractData)
           .catch(this.handleErrorObservable);
    }
}

答案 2 :(得分:0)

1.首先创建Asp .net MVC Web API项目(EventController创建)

2.Craete Angular Application

3.使用Angular CLI创建服务文件(ng g s event)

4.添加HttpModule,JsonpModule导入应用程序模块并将提供程序添加到EventService。

import { EventService } from './events/event.service';
import { BrowserModule } from '@angular/platform-browser'; 
import { HttpModule, JsonpModule } from '@angular/http';

@NgModule({

  imports: [     
    BrowserModule,
    HttpModule,
    JsonpModule 
  ],
  providers: [
    EventServise,
  ],

})

5.Edit event.service.ts文件(Asp.net Project Without Cross Origin Add)

import { Injectable } from '@angular/core';
import { Http, RequestOptions, Headers, Response } from '@angular/http';
import 'rxjs/add/operator/map';


@Injectable()
export class EventService {

  constructor(private http: Http) { }

  setMethod(event:any){
    console.log(event);

    return this.http.post('/events', event).map((response: Response) => response.json());
  }
  getAllEventData(){

    return this.http.get('/events').map((response: Response) => response.json());
  }


}
  1. 在项目的根目录中创建一个名为proxy.conf.json的新文件,并在其中定义代理,如下所示

       {
      "/": {
        "target": "http://localhost:8090/api",
        "secure": false
      }
    }
    
  2. 如果我们为asp .net web api添加Cross origin。我们可以在没有proxy.conf.json的情况下使用,所以我们可以编辑第5步

    import { Injectable } from '@angular/core';
        import { Http, RequestOptions, Headers, Response } from '@angular/http';
        import 'rxjs/add/operator/map';
    
    
        @Injectable()
        export class EventService {
    
          constructor(private http: Http) { }
    
          setMethod(event:any){
            console.log(event);
    
            return this.http.post('http://localhost:8090/api/events', event).map((response: Response) => response.json());
          }
          getAllEventData(){
    
            return this.http.get('http://localhost:8090/api/events').map((response: Response) => response.json());
          }
    
    
        }
    

答案 3 :(得分:-1)

免费试用此: 适用于许多MySQL系统以及未来其他系统的CRUD API

将REST API添加到MySQL 5.6 InnoDB,MariaDB数据库的单个文件PHP 5.6脚本。

Transaction_CRUD_API