Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jmnarloch/angular-vendor-media-type
A simple AngularJS plugin for seting up the vendor specific media type for every $http request
https://github.com/jmnarloch/angular-vendor-media-type
Last synced: 4 days ago
JSON representation
A simple AngularJS plugin for seting up the vendor specific media type for every $http request
- Host: GitHub
- URL: https://github.com/jmnarloch/angular-vendor-media-type
- Owner: jmnarloch
- License: mit
- Created: 2015-08-03T20:56:55.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-08-18T16:30:20.000Z (about 9 years ago)
- Last Synced: 2024-09-28T09:04:40.629Z (about 2 months ago)
- Language: CoffeeScript
- Homepage:
- Size: 203 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Angular Vendor Media Type [![Build Status](https://travis-ci.org/jmnarloch/angular-vendor-media-type.svg?branch=master)](https://travis-ci.org/jmnarloch/angular-vendor-media-type) [![Coverage Status](https://coveralls.io/repos/jmnarloch/angular-vendor-media-type/badge.svg?branch=master&service=github)](https://coveralls.io/github/jmnarloch/angular-vendor-media-type?branch=master) [![npm version](https://badge.fury.io/js/angular-vendor-media-type.svg)](http://badge.fury.io/js/angular-vendor-media-type) [![Dependency Status](https://david-dm.org/jmnarloch/angular-vendor-media-type.svg)](https://david-dm.org/jmnarloch/angular-vendor-media-type) [![devDependency Status](https://david-dm.org/jmnarloch/angular-vendor-media-type/dev-status.svg)](https://david-dm.org/jmnarloch/angular-vendor-media-type#info=devDependencies)
> Angular $http interceptor that sets you vendor specific versioned media type
## Setup
Install the plugin through bower:
```
bower install angular-vendor-media-type --save
```In your Angular module register plugin as module dependency
```
angular.module('app', ['ngVendorMediaType'])
```## Configure
Optionally configure the `httpRequestInterceptorVendorMediaTypeProvider` by setting the matched request urls,
media types and the vendor information using fluent API:```
angular.module('app', ['ngVendorMediaType'])
.config(function(httpRequestInterceptorVendorMediaTypeProvider) {
httpRequestInterceptorVendorMediaTypeProvider
.matchingRequests([/.*api.*/])
.matchingMediaTypes(['text/xml', 'application/xml', 'application/json'])
.withVendor({
name: 'vnd',
application: 'appname',
version: '1'
})
});
```## How it works
The extension intercepts any outgoing $http request and *transforms* the `Accept` and `Content-Type` headers media types.
If your application makes fallowing request:
```
GET /devices
Accept: */*,application/json
```The `Accept` header will be transformed into:
```
GET /devices
Accept: */*,application/vnd.appname.v1+json
```Note: only the configured media types will be altered, you can use the
`httpRequestInterceptorVendorMediaTypeProvider.matchingMediaTypes` method for specifying the desired ones.## Options
`httpRequestInterceptorVendorMediaTypeProvider` defines a set of methods for configuring its behaviour
### matchingRequests
Default value: `[\.*\]`Defines the list of request url regexes
### matchingMediaTypes
Default value: `['text/xml', 'application/xml', 'application/json']`Defines the list of media types to modify
### withVendor
Default value: `null`Defines the vendor information
### withVersionParam
Default value: `false`Allows to pass the version as additional media type parameter i.e.: `application/vnd.appname+json; version=1`
### withoutVersionParam
Default value: `false`Disables passing the media type version parameter
## Migrate from 1.x to 2.x
For consistency all MIME Type references in object or module naming has been changes into Media Type.
## License
MIT