Este documento presenta las recetas y los ingredientes para 8 platillos diferentes, incluyendo sopa de cebolla, canelones de ratatouille, papillote de 3 pescados, escalopa de ternera a la cordon blue, pollo al romero en costra de sal, filete de res a la pimienta negra y aligot de papa, pato a la naranja y creme brulee. Para cada receta, se lista la cantidad y unidad de medida de cada ingrediente así como su costo unitario y el costo total por porción. El objetivo
Cairo, Egypt is the capital and largest city of Egypt known for its ancient history and landmarks. The document discusses Cairo and provides information on places to visit in the city as well as Egyptian cuisine. A flag and map of Cairo are also referenced.
Métodos químicos são descritos em um documento curto. Ele parece se referir a técnicas ou processos envolvendo química. O documento é muito breve, fornecendo poucas informações além dos termos "métodos químicos".
Budowa RESTowego api w oparciu o HATEOAS
@braincodemobi2014
EN: https://blog.allegrogroup.com/it/braincode-mobi1-mobile-people-move-your-brains
PL: https://blog.allegrogroup.com/it/braincode-mobi1-mobilni-ruszcie-mozgi
http://info.put.poznan.pl/2013/12/16/2004
v1.1
Allegro.pl
Este documento presenta las recetas y los ingredientes para 8 platillos diferentes, incluyendo sopa de cebolla, canelones de ratatouille, papillote de 3 pescados, escalopa de ternera a la cordon blue, pollo al romero en costra de sal, filete de res a la pimienta negra y aligot de papa, pato a la naranja y creme brulee. Para cada receta, se lista la cantidad y unidad de medida de cada ingrediente así como su costo unitario y el costo total por porción. El objetivo
Cairo, Egypt is the capital and largest city of Egypt known for its ancient history and landmarks. The document discusses Cairo and provides information on places to visit in the city as well as Egyptian cuisine. A flag and map of Cairo are also referenced.
Métodos químicos são descritos em um documento curto. Ele parece se referir a técnicas ou processos envolvendo química. O documento é muito breve, fornecendo poucas informações além dos termos "métodos químicos".
Budowa RESTowego api w oparciu o HATEOAS
@braincodemobi2014
EN: https://blog.allegrogroup.com/it/braincode-mobi1-mobile-people-move-your-brains
PL: https://blog.allegrogroup.com/it/braincode-mobi1-mobilni-ruszcie-mozgi
http://info.put.poznan.pl/2013/12/16/2004
v1.1
Allegro.pl
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
Sesja z konferencji Microsoft Technology Summit 2013 na temat nowości, które pojawiły się w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloperów. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
9. Personalizacja widgetu
config/routes.rb
namespace :api do
match '/widget/:action/:api_key',
:controller => 'widget',
:api_key => /.*/
end
app/controllers/api/widget_controller.rb
def validate_api_key
render :text => 'Invalid API key'
unless params[:api_key] and return
render :text => 'Wrong API credentials'
if not User.find_by_key(params[:api_key])
and return
end
12. JSONP z pomocą
Często używany, żeby obejść problemy związane z
komunikacją między domenami.
JSON
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
// success
};
};
xhr.open("GET", "http://somewhere", true);
xhr.send();
13. JSONP z pomocą
JSONP
var tag = document.createElement("script");
tag.src = 'http://somewhere?callback=foo';
document.getElementsByTagName("head")[0].appendChild(tag);
14. Jaka jest różnica?
Różnica w zapytaniu JSONP polega na tym, że odpowiedź jest
przekazywana jako argument wywołania funkcji - stąd parametr
callback.
WAŻNE!
W odróżnieniu od zwykłego zapytania XHR w zapytaniu
JSONP nie można wyłapać błędów - dostajemy poprostu
ParseError
15. Jaka jest różnica?
Różnica w zapytaniu JSONP polega na tym, że odpowiedź jest
przekazywana jako argument wywołania funkcji - stąd parametr
callback.
WAŻNE!
W odróżnieniu od zwykłego zapytania XHR w zapytaniu
JSONP nie można wyłapać błędów - dostajemy poprostu
ParseError
Na szczęście jQuery robi to za nas!
16. JSONP i Rails 3
Musimy obsłużyć:
http://hostapp.com/api/widget/action?callback=foo
17. JSONP i Rails 3
Musimy obsłużyć:
http://hostapp.com/api/widget/action?callback=foo
Odpowiedź można sformułować tak:
render :json => @items.to_json, :callback =>
params[:callback]
18. JSONP i Rails 3
Musimy obsłużyć:
http://hostapp.com/api/widget/action?callback=foo
Odpowiedź można sformułować tak:
render :json => @items.to_json, :callback =>
params[:callback]
Otrzymujemy błędy z powodu innej domeny z którą chcemy się
połączyć?
23. Ładowanie widgetu
Pomysł polega na umieszczeniu całej logiki komunikacji i
widoku w samym widgecie, dzięki czemu zaoszczędzimy na
requestach (będziemy wysyłać i odbierać tylko dane)
<script type="text/javascript"
src="http://hostapp.com/api/widget/main"></script>
app/views/api/widget/main.js.erb
if(window.Widget == undefined) {
window.Widget = { // logic here
}
}
28. API
API: {
responseHandler: function() {
Widget.Handlers[action](response.data)
}
}
29. Handlers
Handlers: {
init: function(data) {
// populate widget with data
// and draw some GUI
Widget.GUI.render(data);
}
}
30. Jeszcze ciekawiej: IFRAME w widgecie
Co jeśli w swoim widgecie uruchomimy jeszcze inną stronę w
IFRAME i będziemy chcieli mieć możliwość odpowiedzieć z
niego na pewne zdarzenie w IFRAME?
31. Jeszcze ciekawiej: IFRAME w widgecie
Co jeśli w swoim widgecie uruchomimy jeszcze inną stronę w
IFRAME i będziemy chcieli mieć możliwość odpowiedzieć z
niego na pewne zdarzenie w IFRAME?
Hash pooling
32. Jeszcze ciekawiej: IFRAME w widgecie
Co jeśli w swoim widgecie uruchomimy jeszcze inną stronę w
IFRAME i będziemy chcieli mieć możliwość odpowiedzieć z
niego na pewne zdarzenie w IFRAME?
Hash pooling
Widget.interval = setInterval(handleWindowHash,
1000)
teraz z wewnątrz IFRAME zmieniamy hash okna nadrzędnego
window.location.hash = "trigger_sth"