{"id":13481791,"url":"https://github.com/wordpress-clients/wp-api-angular","last_synced_at":"2025-04-07T17:12:38.335Z","repository":{"id":24583427,"uuid":"27991439","full_name":"wordpress-clients/wp-api-angular","owner":"wordpress-clients","description":"Angular (\u003e=2) services for WordPress WP-API(v2) or WP \u003e= 4.7 (natively supports WP-API)","archived":false,"fork":false,"pushed_at":"2021-01-09T16:48:18.000Z","size":998,"stargazers_count":264,"open_issues_count":12,"forks_count":90,"subscribers_count":36,"default_branch":"develop","last_synced_at":"2024-05-22T04:32:28.704Z","etag":null,"topics":["angular","wordpress","wordpress-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wordpress-clients.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-14T10:55:32.000Z","updated_at":"2023-09-29T20:40:39.000Z","dependencies_parsed_at":"2022-08-23T02:21:40.838Z","dependency_job_id":null,"html_url":"https://github.com/wordpress-clients/wp-api-angular","commit_stats":null,"previous_names":["shprink/wp-api-angular","shprink/wp-api-angularjs"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wordpress-clients%2Fwp-api-angular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wordpress-clients%2Fwp-api-angular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wordpress-clients%2Fwp-api-angular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wordpress-clients%2Fwp-api-angular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wordpress-clients","download_url":"https://codeload.github.com/wordpress-clients/wp-api-angular/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247694877,"owners_count":20980733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","wordpress","wordpress-api"],"created_at":"2024-07-31T17:00:55.745Z","updated_at":"2025-04-07T17:12:38.306Z","avatar_url":"https://github.com/wordpress-clients.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003ewp-api-angular\u003c/h1\u003e\n  \u003cp align=\"center\"\u003eAngular \u003e=2 services for WordPress \u003e= 4.7 Rest API\u003c/p\u003e\n\u003c/p\u003e\n\n================\n\n[![Join the chat at https://gitter.im/shprink/wp-api-angular](https://badges.gitter.im/shprink/wp-api-angular.svg)](https://gitter.im/shprink/wp-api-angular?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nAngular2 services to consume [WP-API v2](http://v2.wp-api.org/)\n\n[Live Demo](https://plnkr.co/edit/hqE4bvbM6HXql5Insjx8?p=preview)\n\nIf you want to use AngularJS v1, here is the latest version: [v2.0.0-rc3](https://www.npmjs.com/package/wp-api-angularjs). `npm i wp-api-angularjs@v2.0.0-rc3`\n\n## Installation\n\n```shell\nnpm install -g typings\nnpm install wp-api-angular\n```\n\n### TypeScript\n\nNothing special if you use TS\n\n### UMD\n\nUMD files are available `wp-api-angular.umd.js` and `wp-api-angular.umd.min.js`, the [Live Demo](https://plnkr.co/edit/hqE4bvbM6HXql5Insjx8?p=preview) uses them with systemJS\n\n## Bootstrap\n\nAn exported function `WpApiLoaderFactory` is mandatory to be used with [AoT compilation](https://angular.io/docs/ts/latest/cookbook/aot-compiler.html) or [Ionic 2](http://ionic.io/).\n\n\n```js\nimport { Http } from '@angular/http';\nimport { \n  WpApiModule,\n  WpApiLoader,\n  WpApiStaticLoader\n} from 'wp-api-angular'\n\nexport function WpApiLoaderFactory(http: Http) {\n  return new WpApiStaticLoader(http, 'http://YOUR_DOMAIN/wp-json/', /* namespace is optional, default: '/wp/v2' */);\n}\n\n@NgModule({\n  imports: [\n    BrowserModule,\n    WpApiModule.forRoot({\n      provide: WpApiLoader,\n      useFactory: (WpApiLoaderFactory),\n      deps: [Http]\n    })\n  ],\n  bootstrap: [App]\n})\nexport class AppModule { }\n```\n\n## API\n\nEvery method return an Obervable. If you want to get a Promise you will need to add the rxjs `toPromise` operator:\n\n```js\nimport 'rxjs/add/operator/toPromise';\n\nclass Test {\n  constructor(private wpApiPosts: WpApiPosts) {\n    this.wpApiPosts.getList()\n      .toPromise()\n      .then(response =\u003e response.json())\n      .then(body =\u003e {})\n      .catch(error =\u003e {})\n  }\n}\n\n```\n\n### RequestOptionsArgs\n\nEvery request can have an optional [`RequestOptionsArgs`](https://angular.io/docs/ts/latest/api/http/index/RequestOptionsArgs-interface.html) object.\n\n```js\nclass RequestOptionsArgs {\n  url : string\n  method : string|RequestMethod\n  search : string|URLSearchParams\n  headers : Headers\n  body : any\n  withCredentials : boolean\n}\n```\n\nThis is where you can add query string to your request or change the headers (see below).\n\n```\nimport { Headers } from '@angular/http';\n\nconst headers = new Headers({\n  'Content-Type': 'application/json;charset=UTF-8',\n  'Access-Control-Allow-Origin': '*',\n  'Access-Control-Max-Age': '1728000',\n  'Access-Control-Allow-Headers': 'Content-Type, Content-Range, Content-Disposition, Content-Description'\n  'Access-Control-Allow-Methods': 'DELETE, HEAD, GET, OPTIONS, POST, PUT'\n});\n\nwpApiPosts.getList({ headers });\n```\n\n### WpApiPosts\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(postId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(postId, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(postId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getMetaList(postId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getMeta(postId, metaId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getRevisionList(postId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getRevision(postId, revisionId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getCategoryList(postId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getCategory(postId, categoryId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getTagList(postId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getTag(postId, tagId, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiPages\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(pageId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(pageId: number, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(pageId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getMetaList(pageId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getMeta(pageId: number, metaId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getRevisionList(pageId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  getRevision(pageId: number, revisionId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiComments\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(commentId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(commentId: number, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(commentId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiTypes\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(postType: string, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiMedia\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(mediaId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(mediaId: number, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(mediaId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiUsers\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  me(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(userId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(userId: number, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(userId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiTaxonomies\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(taxonomiesType: string, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiStatuses\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(statusesName: string, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiTerms\n\n`taxonomiesType` can be `tags`, `categories` and more.\n\n```ts\n  getList(taxonomiesType: string, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(taxonomiesType: string, termId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(taxonomiesType: string, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(taxonomiesType: string, termId: number, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(taxonomiesType: string, termId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n### WpApiCustom\n\n```ts\n  getList(options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  get(customId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  create(body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  update(customId: number, body: any, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n  delete(customId: number, options?: RequestOptionsArgs): Observable\u003cResponse\u003e;\n```\n\n## Authentication\n\nTO BE DEFINED\n\n## Contribute\n\n```shell\nnpm install\ncp config.dist.json config.json\n\n# Open two terminals\n# and run watch to build on the lib files changes\nnpm run watch\n\n# in the other terminal run following to build the test page\nnpm start\n```\n\nOpen ```http://localhost:8080```\n","funding_links":[],"categories":["Uncategorized","TypeScript"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwordpress-clients%2Fwp-api-angular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwordpress-clients%2Fwp-api-angular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwordpress-clients%2Fwp-api-angular/lists"}