-
Notifications
You must be signed in to change notification settings - Fork 38
Code generator for strongly typed client API in TypeScript
zijianhuang edited this page Apr 8, 2017
·
4 revisions
Examples generated:
/// <reference path="../typings/jquery/jquery.d.ts" />
/// <reference path="HttpClient.ts" />
namespace DemoWebApi_DemoData_Client {
export enum AddressType {Postal, Residential}
export enum Days {Sat=1, Sun=2, Mon=3, Tue=4, Wed=5, Thu=6, Fri=7}
export interface Address {
Id?: string;
Street1?: string;
Street2?: string;
City?: string;
State?: string;
PostalCode?: string;
Country?: string;
Type?: DemoWebApi_DemoData_Client.AddressType;
Location?: DemoWebApi_DemoData_Another_Client.MyPoint;
}
export interface Entity {
Id?: string;
Name: string;
Addresses?: Array<DemoWebApi_DemoData_Client.Address>;
}
export interface Person extends DemoWebApi_DemoData_Client.Entity {
Surname?: string;
GivenName?: string;
BirthDate?: Date;
}
export interface Company extends DemoWebApi_DemoData_Client.Entity {
BusinessNumber?: string;
BusinessNumberType?: string;
TextMatrix?: Array<Array<string>>;
Int3D?: Array<Array<Array<number>>>;
Lines?: Array<string>;
}
}
namespace DemoWebApi_DemoData_Another_Client {
export interface MyPoint {
X?: number;
Y?: number;
}
}
namespace DemoWebApi_Controllers_Client {
export class Entities {
httpClient: HttpClient;
constructor(public baseUri?: string, public error?: (xhr: JQueryXHR, ajaxOptions: string, thrown: string) => any, public statusCode?: { [key: string](key_-string): any; }){
this.httpClient = new HttpClient();
}
/**
* Get a person
* GET api/Entities/{id}
* @param {number} id unique id of that guy
* @return {DemoWebApi_DemoData_Client.Person} person in db
*/
GetPerson(id: number, callback: (data : DemoWebApi_DemoData_Client.Person) => any){
this.httpClient.get(encodeURI(this.baseUri + 'api/Entities/'+id), callback, this.error, this.statusCode);
}
/**
* POST api/Entities
* @param {DemoWebApi_DemoData_Client.Person} person
* @return {number}
*/
CreatePerson(person: DemoWebApi_DemoData_Client.Person, callback: (data : number) => any){
this.httpClient.post(encodeURI(this.baseUri + 'api/Entities'), person, callback, this.error, this.statusCode);
}
/**
* PUT api/Entities
* @param {DemoWebApi_DemoData_Client.Person} person
* @return {void}
*/
UpdatePerson(person: DemoWebApi_DemoData_Client.Person, callback: (data : void) => any){
this.httpClient.put(encodeURI(this.baseUri + 'api/Entities'), person, callback, this.error, this.statusCode);
}
/**
* DELETE api/Entities/{id}
* @param {number} id
* @return {void}
*/
Delete(id: number, callback: (data : void) => any){
this.httpClient.delete(encodeURI(this.baseUri + 'api/Entities/'+id), callback, this.error, this.statusCode);
}
}
export class Values {
httpClient: HttpClient;
constructor(public baseUri?: string, public error?: (xhr: JQueryXHR, ajaxOptions: string, thrown: string) => any, public statusCode?: { [key: string](key_-string): any; }){
this.httpClient = new HttpClient();
}
/**
* GET api/Values
* @return {Array<string>}
*/
Get(callback: (data : Array<string>) => any){
this.httpClient.get(encodeURI(this.baseUri + 'api/Values'), callback, this.error, this.statusCode);
}
/**
* GET api/Values/{id}?name={name}
* @param {number} id
* @param {string} name
* @return {string}
*/
GetByIdAndName(id: number, name: string, callback: (data : string) => any){
this.httpClient.get(encodeURI(this.baseUri + 'api/Values/'+id+'?name='+name), callback, this.error, this.statusCode);
}
/**
* POST api/Values
* @param {string} value
* @return {string}
*/
Post(value: {'':string}, callback: (data : string) => any){
this.httpClient.post(encodeURI(this.baseUri + 'api/Values'), value, callback, this.error, this.statusCode);
}
/**
* PUT api/Values/{id}
* @param {number} id
* @param {string} value
* @return {void}
*/
Put(id: number, value: {'':string}, callback: (data : void) => any){
this.httpClient.put(encodeURI(this.baseUri + 'api/Values/'+id), value, callback, this.error, this.statusCode);
}
/**
* DELETE api/Values/{id}
* @param {number} id
* @return {void}
*/
Delete(id: number, callback: (data : void) => any){
this.httpClient.delete(encodeURI(this.baseUri + 'api/Values/'+id), callback, this.error, this.statusCode);
}
}
}