Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Deborah Kurata
@deborahkurata | blogs.msmvps.com/deborahk/
Module Objectives
Understanding
CORS
Enabling CORS
Understanding
Serialization
Formatters
Configuring the
JSON
Formatter
Wikipedia
Browser
Server
HTML
HTML
Angular/
JavaScript
Angular/
JavaScript
Web API
Service
Browser
HTML
Server 1
HTML
<script
type="application/javascript"
src="http://server2.com/api/products?jsonp=parseResponse">
</script>
Angular/
JavaScript
Angular/
JavaScript
Server 2
Web API
Service
config.EnableCors();
[EnableCorsAttribute("http://localhost:52436", "*","*")]
Wikipedia
{
"ProductId": 1,
"ProductName": "Leaf Rake",
"ProductCode": "GDN-0011",
"ReleaseDate": "2009-03-19T00:00:00",
"Description": "Leaf rake with 48inch wooden handle.",
"Price": 19.95
},
]
Serializer
Controller
{
"productId": 1,
"productName": "Leaf Rake",
"productCode": "GDN-0011",
"releaseDate": "2009-03-19T00:00:00",
"description": "Leaf rake with 48inch wooden handle.",
"price": 19.95
},
]
Serializer
Controller
Serialization Formatters
JSON
XML
config.Formatters.JsonFormatter
.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver();
Touch Points
Retrieving Data
Filtering, Shaping, Querying Data
Saving Data
Error Handling
User Authentication
User Authorization
- Michelangelo Buonarroti via Wikimedia Commons
https://www.flickr.com/photos/34409164@N06/4277702120
Saving Data
Deborah Kurata
@deborahkurata | blogs.msmvps.com/deborahk/
Touch Points
Retrieving Data
Filtering, Shaping, Querying Data
Saving Data
Error Handling
User Authentication
User Authorization
- Michelangelo Buonarroti via Wikimedia Commons
https://www.flickr.com/photos/34409164@N06/4277702120
Updating an Item
GET Request
api/products/5
API
Updating an Item
PUT Request
- Steel
api/products/5
API
Creating an Item
GET Request
api/products/0
API
Creating an Item
POST Request
api/products
API
API
Module Objectives
Building the Web
API Service
Methods
Building an
Angular Edit Page
POST
PUT
PUT (api/products/5)
Used to:
Used to:
Not idempotent
Idempotent
Modify index.html
Angular controller
(productEditCtrl)
Model
Methods
vm.submit = function () {
<button
ng-click="vm.submit()">
}
Save
</button>
Angular module
(common.services)
Custom Angular
service
(productResource)
Built in
$resource
service
Web API
service
Query
Get
Save
GET Request
api/products
GET Request
api/products/5
POST Request
api/products
Web API
service
return $resource(appSettings.serverPath +
"/api/products/:id");
return $resource(appSettings.serverPath +
"/api/products/:id", null,
{
'update':{method:'PUT'}
});
$resource Methods
Angular module (common.services)
productResource service
$resource service
Query
Get
Save
Update
GET Request
api/products
GET Request
api/products/5
POST Request
api/products
PUT Request
api/products/5
Web API
service
Touch Points
Retrieving Data
Filtering, Shaping, Querying Data
Saving Data
Error Handling
User Authentication
User Authorization
- Michelangelo Buonarroti via Wikimedia Commons
https://www.flickr.com/photos/34409164@N06/4277702120