Nimoy Prospers Mystically
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

wp-api-angular

3.0.0-beta8 • Public • Published

wp-api-angular

Angular >=2 services for WordPress >= 4.7 Rest API

================

Join the chat at https://gitter.im/shprink/wp-api-angular

Angular2 services to consume WP-API v2

Live Demo

If you want to use AngularJS v1, here is the latest version: v2.0.0-rc3. npm i wp-api-angularjs@v2.0.0-rc3

Installation

npm install -g typings
npm install wp-api-angular

TypeScript

Nothing special if you use TS

UMD

UMD files are available wp-api-angular.umd.js and wp-api-angular.umd.min.js, the Live Demo uses them with systemJS

Bootstrap

An exported function instead WpApiLoaderFactory is mandatory to be used with AoT compilation or Ionic 2.

import { Http } from '@angular/http';
import { 
  WpApiModule,
  WpApiLoader,
  WpApiStaticLoader
} from 'wp-api-angular'
 
export function WpApiLoaderFactory(http: Http) {
  return new WpApiStaticLoader(http, 'http://YOUR_DOMAIN/wp-json/', /* namespace is optional, default: '/wp/v2' */);
}
 
@NgModule({
  imports: [
    BrowserModule,
    WpApiModule.forRoot({
      provide: WpApiLoader,
      useFactory: (WpApiLoaderFactory),
      deps: [Http]
    })
  ],
  bootstrap: [App]
})
export class AppModule { }

API

Every method return an Obervable. If you want to get a Promise you will need to add the rxjs toPromise operator:

import 'rxjs/add/operator/toPromise';
 
class Test {
  constructor(private wpApiPosts: WpApiPosts) {
    this.wpApiPosts.getList()
      .toPromise()
      .then(response => response.json())
      .then(body => {})
      .catch(error => {})
  }
}
 

RequestOptionsArgs

Every request can have an optional RequestOptionsArgs object.

class RequestOptionsArgs {
  url : string
  method : string|RequestMethod
  search : string|URLSearchParams
  headers : Headers
  body : any
  withCredentials : boolean
}

This is where you can add query string to your request or change the headers (see below).

import { Headers } from '@angular/http';

const headers = new Headers({
  'Content-Type': 'application/json;charset=UTF-8',
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Max-Age': '1728000',
  'Access-Control-Allow-Headers': 'Content-Type, Content-Range, Content-Disposition, Content-Description'
  'Access-Control-Allow-Methods': 'DELETE, HEAD, GET, OPTIONS, POST, PUT'
});

wpApiPosts.getList({ headers });

WpApiPosts

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(postId, options?: RequestOptionsArgs)Observable<Response>;
  create(bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(postId, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(postId, options?: RequestOptionsArgs)Observable<Response>;
  getMetaList(postId, options?: RequestOptionsArgs)Observable<Response>;
  getMeta(postId, metaId, options?: RequestOptionsArgs)Observable<Response>;
  getRevisionList(postId, options?: RequestOptionsArgs)Observable<Response>;
  getRevision(postId, revisionId, options?: RequestOptionsArgs)Observable<Response>;
  getCategoryList(postId, options?: RequestOptionsArgs)Observable<Response>;
  getCategory(postId, categoryId, options?: RequestOptionsArgs)Observable<Response>;
  getTagList(postId, options?: RequestOptionsArgs)Observable<Response>;
  getTag(postId, tagId, options?: RequestOptionsArgs)Observable<Response>;

WpApiPages

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(pageIdnumber, options?: RequestOptionsArgs)Observable<Response>;
  create(bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(pageIdnumber, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(pageId: number, options?: RequestOptionsArgs): Observable<Response>;
  getMetaList(pageId: number, options?: RequestOptionsArgs)Observable<Response>;
  getMeta(pageId: number, metaId: number, options?: RequestOptionsArgs)Observable<Response>;
  getRevisionList(pageId: number, options?: RequestOptionsArgs)Observable<Response>;
  getRevision(pageId: number, revisionId: number, options?: RequestOptionsArgs)Observable<Response>;

WpApiComments

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(commentIdnumber, options?: RequestOptionsArgs)Observable<Response>;
  create(bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(commentIdnumber, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(commentId: number, options?: RequestOptionsArgs): Observable<Response>;

WpApiTypes

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(postTypestring, options?: RequestOptionsArgs)Observable<Response>;

WpApiMedia

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(mediaIdnumber, options?: RequestOptionsArgs)Observable<Response>;
  create(bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(mediaIdnumber, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(mediaId: number, options?: RequestOptionsArgs): Observable<Response>;

WpApiUsers

  getList(options?: RequestOptionsArgs)Observable<Response>;
  me(options?: RequestOptionsArgs)Observable<Response>;
  get(userIdnumber, options?: RequestOptionsArgs)Observable<Response>;
  create(bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(userIdnumber, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(userId: number, options?: RequestOptionsArgs): Observable<Response>;

WpApiTaxonomies

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(taxonomiesTypestring, options?: RequestOptionsArgs)Observable<Response>;

WpApiStatuses

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(statusesNamestring, options?: RequestOptionsArgs)Observable<Response>;

WpApiTerms

taxonomiesType can be tags, categories and more.

  getList(taxonomiesTypestring, options?: RequestOptionsArgs)Observable<Response>;
  get(taxonomiesTypestring, termIdnumber, options?: RequestOptionsArgs)Observable<Response>;
  create(taxonomiesTypestring, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(taxonomiesTypestring, termIdnumber, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(taxonomiesType: string, termId: number, options?: RequestOptionsArgs): Observable<Response>;

WpApiCustom

  getList(options?: RequestOptionsArgs)Observable<Response>;
  get(customIdnumber, options?: RequestOptionsArgs)Observable<Response>;
  create(bodyany, options?: RequestOptionsArgs)Observable<Response>;
  update(customIdnumber, bodyany, options?: RequestOptionsArgs)Observable<Response>;
  delete(customId: number, options?: RequestOptionsArgs): Observable<Response>;

Authentication

TO BE DEFINED

Contribute

npm install
cp config.dist.json config.json
 
# Open two terminals 
# and run watch to build on the lib files changes 
npm run watch
 
# in the other terminal run following to build the test page 
npm start

Open http://localhost:8080

install

npm i wp-api-angular

Downloadsweekly downloads

81

version

3.0.0-beta8

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability