wp-api-ng7
TypeScript icon, indicating that this package has built-in type declarations

3.0.0-beta.1 • Public • Published

wp-api-angular

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

Fork of buggy1985/wp-api-angular -> wordpress-clients/wp-api-angular

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

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

Ng 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 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 WpApiLoaderFactory is mandatory to be used with AoT compilation or Ionic 2.

import { 
  WpApiModule,
  WpApiLoader,
  WpApiStaticLoader
} from 'wp-api-angular'
 
export function WpApiLoaderFactory() {
  return new WpApiStaticLoader('http://YOUR_DOMAIN/wp-json/', /* namespace is optional, default: '/wp/v2' */);
}
 
@NgModule({
  imports: [
    BrowserModule,
    WpApiModule.forRoot({
      provide: WpApiLoader,
      useFactory: (WpApiLoaderFactory)
    })
  ],
  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:

 
class Test {
  constructor(private wpApiPosts: WpApiPosts) {
    this.wpApiPosts.getList()
      .toPromise()
      .then(response => response)
      .then(body => {})
      .catch(error => {})
  }
}
 

RequestOptionsArgs

Every request can have an optional httpOptions object.

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

import { HttpHeaders } from '@angular/common/http';

const httpOptions = {
  headers: new HttpHeaders({
    '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(httpOptions);

WpApiPosts

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

WpApiPages

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

WpApiComments

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

WpApiTypes

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

WpApiMedia

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

WpApiUsers

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

WpApiTaxonomies

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

WpApiStatuses

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

WpApiTerms

taxonomiesType can be tags, categories and more.

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

WpApiCustom

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

Authentication

TO BE DEFINED

Contribute

npm install
 
# 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

Package Sidebar

Install

npm i wp-api-ng7

Weekly Downloads

1

Version

3.0.0-beta.1

License

MIT

Unpacked Size

2.52 MB

Total Files

61

Last publish

Collaborators

  • libinv