Cisco REST API Tutorial

Wszystko o rozwiązaniach Software-defined networking (SDN), OpenFlow, APIC-EM, ACI, REST API i pokrewnych

Moderatorzy: mikrobi, aron, garfield, gangrena, Seba

Wiadomość
Autor
Awatar użytkownika
peper
CCIE / Site Admin
CCIE / Site Admin
Posty: 4872
Rejestracja: 13 sie 2004, 12:19
Lokalizacja: Warsaw, PL
Kontakt:

Cisco REST API Tutorial

#1

#1 Post autor: peper » 24 paź 2016, 22:31

Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"

Awatar użytkownika
peper
CCIE / Site Admin
CCIE / Site Admin
Posty: 4872
Rejestracja: 13 sie 2004, 12:19
Lokalizacja: Warsaw, PL
Kontakt:

Re: Cisco REST API Tutorial

#2

#2 Post autor: peper » 31 paź 2016, 17:17

Częśc druga bardziej teoretyczna, ale od następnej lecimy z mięskiem ;)
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"

Awatar użytkownika
peper
CCIE / Site Admin
CCIE / Site Admin
Posty: 4872
Rejestracja: 13 sie 2004, 12:19
Lokalizacja: Warsaw, PL
Kontakt:

Re: Cisco REST API Tutorial

#3

#3 Post autor: peper » 03 sty 2017, 13:43

Zapraszam do lektury trzeciej części, dyskusji i komentowania. We wpisie prosty skrypt z opisem wykorzystanych metod.

Cisco ASA REST API – Part III: Checking if prefix is directly connected
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"

Awatar użytkownika
peper
CCIE / Site Admin
CCIE / Site Admin
Posty: 4872
Rejestracja: 13 sie 2004, 12:19
Lokalizacja: Warsaw, PL
Kontakt:

Re: Cisco REST API Tutorial

#4

#4 Post autor: peper » 15 lut 2017, 13:50

Jakoś umknęło mi aktualizowanie spisu a tu 3 nowe odcinki sagi o REST API się pojawiły ;)
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"

Seba
CCIE/CCDE Site Admin
CCIE/CCDE Site Admin
Posty: 6223
Rejestracja: 15 lip 2004, 20:35
Lokalizacja: Warsaw, PL

Re: Cisco REST API Tutorial

#5

#5 Post autor: Seba » 17 lut 2017, 09:02

No i cool :)
Popatrzymy w wolnej chwili na temat, ale najpierw PLNOG .
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe."
A. Einstein

horac
wannabe
wannabe
Posty: 72
Rejestracja: 18 kwie 2016, 21:04
Lokalizacja: CCIE

Re: Cisco REST API Tutorial

#6

#6 Post autor: horac » 27 lut 2017, 20:09

Pepper ja bym tak szybko nie skreslal node.js na twoim miejscu ani javascript.

Pamietaj ze asynchronicznosc jest stworzona i idealna do zapytan API. Jaka masz pewnosc ze wysylajac request HTTP Dostaniesz go od razu ? moze bedzie akurat jakis lag, cos co spowolni response, nie chcesz przeciez zeby caly twoj program czekal az wroca dane, w tym czasie mozesz wykonac inne operacje a w ostatecznosci jak przyjdzie response to sie wykona callback ktory go obsluguje

Ponizej jak mozna usprawnic callbacki


Callbacki moga zajechac czlowieka bo powstaje makaron (funkcja za funkcja i mozna sie pogubic)
na szczescie jest cos takiego jak Promisses, gdzie mozna callbacki zamknac w bardziej czytelny dla czlowieka sposob + obsluzyc sobie blad po kazdej funkcji

Cala idea Promiss jest taka ze bierze dwa argumenty resolve/reject(opcjonalny mozna uzyc catch) i wrzuca siebie w pending state, dopoki resolve nie zwroci rzadanej wartosci
albo reject nie wypluje bledu. Ta zwracana wartosc wykorzystujesz w kolejnych funkcjach. Dla przykladu na kolanie napisane Hello World, bo przyklady z sieci
sa malo zrozumiale zeby chwycic ideee imho.

Kod: Zaznacz cały

var greetings = new Promise(function(resolve) {
  resolve("Hello in");
});

function hello(value){
  let msg = "my world"
  console.log(value+" my world")
  return value+msg;
}

function calculate(value){
  console.log("And length of my message:",value.length)
}

function helloError(err){
  return console.log(err)
}

greetings
.then(hello)
.then(calculate)
.catch(helloError);
Tu fajnie opisane sa promisses https://scotch.io/tutorials/javascript- ... or-dummies
A tu nowe promisses dodane do przegldarek fetch() https://developers.google.com/web/updat ... n-to-fetch
ktory skroci twoj kod o 3/4 ;]

Przyklad: wzialem jakies api publiczne i

Kod: Zaznacz cały

mkdir moje-api 
cd moje-api
npm init -y
npm install --save node-fetch

touch apitest.js

w pliku
var fetch = require('node-fetch');

var dataRecv = []

 fetch('http://api.giphy.com/v1/gifs/trending?api_key=dc6zaTOxFJmzC')
.then(response => response.json())
.then(responseData=> {
  //console.log(responseData.data)
  Object.assign(dataRecv,responseData.data)
    console.log(dataRecv)})

.catch(error => console.log("Data fetch failed"))
I robisz sobie z tym co chcesz w kolejnych .then albo po za bo dataRecv obiekt jest dostepny po za scope promisses. Nawet python i ruby ze swoimi requestami sie chowa
przy tym ;]

Oprocz fetch masz jeszcze axios, ktory ma middleware mozesz robic z response/request co chcesz zanim dane zostana odebrane lub wyslane

Mam nadzieje ze zachecilem cie do dalszej exploracji javascript

Awatar użytkownika
peper
CCIE / Site Admin
CCIE / Site Admin
Posty: 4872
Rejestracja: 13 sie 2004, 12:19
Lokalizacja: Warsaw, PL
Kontakt:

Re: Cisco REST API Tutorial

#7

#7 Post autor: peper » 27 lut 2017, 22:35

Hej Horac,

Napisałem na wstępie całego cyklu, że nie jestem programistą ;) node.js wyskoczył jako element dyskusji i został potraktowany na zasadzie "can I do that?". Nie wątpię, że pokazany sposób nie jest optymalny. Zresztą bawiąc się Swiftem szybko polubiłem bibliotekę Alamofire od systemowej.

Rady tu zawarte mam nadzieję potomności się przydadzą :)

Pzdr
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: http://www.linkedin.com/in/peper
Twitter: http://www.twitter.com/PiotrW_CCIE
Blog: http://blog.it-playground.eu

"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"

ODPOWIEDZ