CINXE.COM
Web API - InfoQ
<!DOCTYPE html> <html lang="fr" xmlns="http://www.w3.org/1999/xhtml"> <head> <!-- Google Optimize Anti-flicker snippet (recommended) --> <style>.async-hide { opacity: 0 !important} </style> <style>.promo{background:#222528;position:fixed;z-index:1001!important;left:0;top:0;right:0;max-height:48px;min-height:48px;padding-top:0!important;padding-bottom:0!important}.promo,.promo p{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.promo p{font-size:.8125rem;line-height:1rem;color:#fff;margin-bottom:0;margin-top:0;margin:0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:700}@media only screen and (max-width:650px){.promo p{font-size:.6875rem}}.promo span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.promo a{color:#fff!important;text-decoration:underline!important}.promo a.btn{background:#d0021b;padding:7px 20px;text-decoration:none!important;font-weight:700;margin-left:10px;margin-right:10px;white-space:nowrap;border-radius:5px}@media only screen and (max-width:650px){.promo a.btn{font-size:.6875rem;padding:7px 10px}}.promo.container{padding-top:8px;padding-bottom:8px}@media only screen and (min-width:1050px){.promo.container{padding-top:0;padding-bottom:0}}.promo .actions{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.promo .actions__left{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.promo .actions__right{-ms-flex-preferred-size:40px;flex-basis:40px;margin-top:0;margin-bottom:0;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.promo.hidden{display:none}.promo.show{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.promo.show .container__inner{-webkit-box-flex:1;-ms-flex:1;flex:1}.promo.fixed{position:fixed}.promo.show+header.header{margin-top:48px}.header{background:#fff;-webkit-box-shadow:0 1px 0 #dde2e5;box-shadow:0 1px 0 #dde2e5}.header .actions__left,.header__bottom__events{max-width:100%!important;margin:0}.header .header__events-all{margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.header .header__events-all .header__event-slot{-webkit-box-flex:1;-ms-flex:1 100%;flex:1 100%;border-right:1px solid #dde2e5;margin-top:3px;margin-bottom:3px;padding-left:15px;text-align:left;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-right:5px;min-width:300px}.header .header__events-all .header__event-slot:hover{text-decoration:none!important}.header .header__events-all .header__event-slot img{min-width:40px;height:40px}.header .header__events-all .header__event-slot div{margin-left:10px}.header .header__events-all .header__event-slot span{font-weight:700!important;font-size:.75rem;margin-bottom:0!important;margin-top:0;display:block;line-height:1.125rem;text-align:left}.header .header__events-all .header__event-slot p{font-weight:400;font-size:.625rem;line-height:130%!important;color:#495057!important;margin:0}@media only screen and (min-width:1050px){.header .header__events-all .header__event-slot p{font-size:.625rem}}.header .header__events-all .header__event-slot:first-child{padding-left:0}.header .header__events-all .header__event-slot:last-child{padding-right:0;border-right:0}@media only screen and (min-width:1050px){.header__bottom,.header__middle,.header__top{position:relative;white-space:nowrap}}.header__top{padding:10px 0}@media only screen and (min-width:800px){.header__top{padding:5px 0}}.header__bottom{padding:5px 0;z-index:29;max-width:100%}.header__bottom a{font-size:.8125rem}.header__bottom .trending{margin-left:0;margin-right:0}.header__bottom .actions{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.header__bottom .actions__left{max-width:calc(100% + 8px)}@media only screen and (min-width:800px){.header__bottom .actions__left{max-width:calc(100% + 24px)}}.header__bottom .actions__right{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:none}@media only screen and (min-width:1050px){.header__bottom .actions__right{display:-webkit-box;display:-ms-flexbox;display:flex}}.header__middle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}@media only screen and (min-width:1050px){.header__middle{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.header__top .actions__left{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}@media only screen and (min-width:1050px){.header__top .actions__right{max-width:430px}}.no-style.header__nav li:nth-child(3){font-weight:700}.no-style.header__nav li:nth-child(3) a{color:#0e5ef1!important}.header__bottom__events::after{background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),to(#fff));background:linear-gradient(90deg,rgba(255,255,255,0) 0,#fff 100%);content:'';position:absolute;height:60px;right:10px;width:25px}@media only screen and (min-width:1050px){.header__bottom__events::after{display:none}}.contribute-link{font-weight:400;font-size:.6875rem;color:#000!important;position:relative;padding-left:10px}.contribute-link:hover{color:#00791d!important;text-decoration:none!important}.contribute-link::before{content:'';width:1px;height:12px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:rgba(0,0,0,.1);left:-1px}.my-0{margin-top:0!important;margin-bottom:0!important}.header__desc.my-0{margin-left:0}.header__bottom__events .actions__left{max-width:100%!important;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none;display:block;scroll-behavior:smooth;min-width:100%}.header__bottom__events .actions__left::-webkit-scrollbar{display:none}.header__bottom__events .actions__left:-webkit-scrollbar-thumb{background:#fff}.logo{line-height:1rem}.header{position:relative;z-index:41;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.header .input:focus,.header input[type=password]:focus,.header input[type=text]:focus{border:1px solid #00791d}.header a:not(.button):not(.login__action):not(.active){text-decoration:none;color:#222}.header a:not(.button):not(.login__action):not(.active):hover{text-decoration:underline;color:#222}.header__items{display:none;-ms-flex-wrap:wrap;flex-wrap:wrap}@media only screen and (min-width:1050px){.header__items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.header__items nav{position:relative;background:0 0;padding:0;left:0;top:0;line-height:inherit;display:block;-webkit-box-shadow:none;box-shadow:none;max-width:100%;max-height:80px}}.header__items>div{width:100%;margin-bottom:32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}@media only screen and (min-width:552px){.header__items>div:not(:nth-last-child(-n+2)){margin-bottom:32px}}@media only screen and (min-width:552px) and (max-width:1050px){.header__items>div{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(99.7% * 1/2 - (32px - 32px * 1/2));flex-basis:calc(99.7% * 1/2 - (32px - 32px * 1/2));max-width:calc(99.7% * 1/2 - (32px - 32px * 1/2));width:calc(99.7% * 1/2 - (32px - 32px * 1/2))}.header__items>div:nth-child(1n){margin-right:32px;margin-left:0}.header__items>div:last-child{margin-right:0}.header__items>div:nth-child(2n){margin-right:0;margin-left:auto}}@media only screen and (min-width:800px) and (max-width:1050px){.header__items>div{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(99.7% * 1/4 - (32px - 32px * 1/4));flex-basis:calc(99.7% * 1/4 - (32px - 32px * 1/4));max-width:calc(99.7% * 1/4 - (32px - 32px * 1/4));width:calc(99.7% * 1/4 - (32px - 32px * 1/4))}.header__items>div:nth-child(1n){margin-right:32px;margin-left:0}.header__items>div:last-child{margin-right:0}.header__items>div:nth-child(4n){margin-right:0;margin-left:auto}}@media only screen and (min-width:1050px){.header__items>div{margin-bottom:0!important;margin-right:0!important;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.header__items .language__switcher{display:none}.header__items .language__switcher .li-nav.active>a,.header__items .language__switcher>li.active>a{color:#fff!important}.header__items .language__switcher .li-nav.active>a:hover,.header__items .language__switcher>li.active>a:hover{color:#fff!important;background:#0e5ef1}.header__items .language__switcher .li-nav:hover>a,.header__items .language__switcher>li:hover>a{color:#fff}.header+main{display:block;min-height:210px;-webkit-transition:margin .15s ease;transition:margin .15s ease;margin-top:0!important}.header--hide .header+main{margin-top:50px}.header--hide .header__toggle{opacity:0;top:20px;visibility:hidden}.header--hide .header__logo{max-height:0}.header--hide .header__middle,.header--hide .header__top{max-height:0;overflow:hidden;padding-top:0;padding-bottom:0;border-color:transparent}.header--hide .header__bottom .vue-portal-target{top:3px;right:0;bottom:auto;left:auto;position:absolute}.header__middle,.header__top{-webkit-transition:all .15s ease;transition:all .15s ease}.header__middle{border-bottom:1px solid rgba(0,0,0,.1);z-index:33}.header__middle .vue-portal-target{width:100%}@media only screen and (min-width:1050px){.header__middle .vue-portal-target{display:none}}@media only screen and (min-width:1050px){.header__middle{line-height:5.75rem;text-align:left;padding:0;z-index:30}.header__middle .widget__heading{display:none}}.header__top>.actions__left{display:none}@media only screen and (min-width:1050px){.header__top>.actions__left{display:-webkit-box;display:-ms-flexbox;display:flex}}.header__top>.actions__right{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-right:0;margin-top:0;margin-bottom:0;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.header__top>.actions__right .dropdown__holder{width:calc(100vw - 16px);max-height:80vh}@media only screen and (min-width:600px){.header__top>.actions__right .dropdown__holder{width:auto}}.header__top>.actions__right>*{margin:0}.header__top>.actions__right .search{display:none}@media only screen and (min-width:1050px){.header__top>.actions__right>*{display:-webkit-box;display:-ms-flexbox;display:flex;white-space:nowrap}.header__top>.actions__right .search{display:block}}.header__top .user__login{display:block}.header__top .user__login>.button,.header__top .user__login>button{border-top-right-radius:0;border-bottom-right-radius:0}@media only screen and (min-width:1050px){.header__top{position:relative;right:auto;width:100%}}.header__logo{max-width:165px;position:absolute;top:8px;overflow:hidden;-webkit-transition:all .1s ease;transition:all .1s ease;z-index:32;line-height:2.25rem;height:36px;width:100px;margin-left:50px;-ms-flex-preferred-size:190px;flex-basis:190px}@media only screen and (min-width:800px){.header__logo{top:4px}}@media only screen and (min-width:1050px){.header__logo{position:relative;top:0;overflow:visible;margin-right:20px;margin-left:0;line-height:3.125rem;height:50px}.header__logo>*{width:165px}}@media only screen and (min-width:1280px){.header__logo{margin-right:30px}}.header__desc,.header__more>button{text-transform:capitalize;color:#666;letter-spacing:0;font-size:0;font-weight:400;line-height:1.5rem;vertical-align:top;font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Variable","Segoe UI",system-ui,ui-sans-serif,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-transition:font-size .15s ease-in-out;transition:font-size .15s ease-in-out}@media only screen and (min-width:1050px){.header__desc,.header__more>button{font-size:.6875rem}}.header__desc{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative;width:auto}.header__topics{white-space:nowrap;float:right;position:relative}.header__topics *{display:inline-block;vertical-align:top}.header__topics a{font-size:.8125rem}@media only screen and (min-width:1050px){.header__topics{float:none}}.header__more{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:top}.header__more:before{left:-12px}.header__more:after,.header__more:before{content:'';width:1px;height:12px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:rgba(0,0,0,.1)}.header__more:after{right:-12px}.header__more:hover{cursor:pointer;color:rgba(0,0,0,.75)}.header__user{display:inline-block;vertical-align:top;white-space:nowrap;margin-left:8px}@media only screen and (min-width:1050px){.header__user{margin-left:0}}.header__user>div{display:inline-block;vertical-align:top}.header__user-nav a:not(.button){text-transform:uppercase;font-size:.75rem;font-weight:600}.header__user-nav a:not(.button):not(.active){opacity:.5}.header__user-nav a:not(.button):not(.active):hover{opacity:.75}.header__user-nav a:not(.button):hover{text-decoration:none}.header__user-nav a:not(.button).active{color:#222;cursor:default;text-decoration:none}.header__user-nav a:not(.button):before{margin-right:0}.header__user-nav a:not(.button):not(:last-child){margin-right:16px}@media only screen and (min-width:1050px){.header__user-nav a:not(.button):not(:last-child){margin-right:32px}}@media only screen and (min-width:1050px){.header__user-nav+.header__topics{margin-left:56px}}.header__search{display:none;vertical-align:top;margin-right:0}@media only screen and (min-width:1050px){.header__search{display:inline-block}}.header__search,.header__user{line-height:inherit}.header__nav{border-bottom:1px solid rgba(0,0,0,.1)}@media only screen and (min-width:800px){.header__nav{border-bottom:0}}.header__nav .button{margin-left:0}.header__nav .button__more{margin-right:20px}.header__nav .li-nav,.header__nav>li{-webkit-transition:all .15s ease;transition:all .15s ease}@media only screen and (min-width:1050px){.header__nav .li-nav,.header__nav>li{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;position:static;border:none;min-height:65px}.header__nav .li-nav:hover.has--subnav .nav .li-nav,.header__nav .li-nav:hover.has--subnav .nav>li,.header__nav>li:hover.has--subnav .nav .li-nav,.header__nav>li:hover.has--subnav .nav>li{white-space:normal}.header__nav .li-nav:hover.has--subnav .nav__subnav,.header__nav>li:hover.has--subnav .nav__subnav{opacity:1;top:100%;visibility:visible;-webkit-transition-delay:.25s;transition-delay:.25s}.header__nav .li-nav:hover.has--subnav .nav__category,.header__nav>li:hover.has--subnav .nav__category{width:100%}.header__nav .li-nav:hover.has--subnav .nav__category:after,.header__nav .li-nav:hover.has--subnav .nav__category:before,.header__nav>li:hover.has--subnav .nav__category:after,.header__nav>li:hover.has--subnav .nav__category:before{-webkit-transition-delay:.25s;transition-delay:.25s;opacity:1}}@media only screen and (min-width:1080px){.header__nav .li-nav:not(:last-child),.header__nav>li:not(:last-child){margin-right:23px;margin-left:23px}}@media only screen and (min-width:1280px){.header__nav .li-nav:not(:last-child),.header__nav>li:not(:last-child){margin-right:23px;margin-left:23px}}@media only screen and (min-width:1338px){.header__nav .li-nav:not(:last-child),.header__nav>li:not(:last-child){margin-right:23px;margin-left:23px}}.header__nav .li-nav>a,.header__nav>li>a{font-size:.875rem;line-height:1.5rem;padding:12px 0;color:#000;display:inline-block;max-width:100%;position:relative;z-index:61;white-space:normal}@media only screen and (min-width:1050px){.header__nav .li-nav>a,.header__nav>li>a{padding:8px 0 0;font-weight:700}}.header__nav .li-nav>a:after,.header__nav .li-nav>a:before,.header__nav>li>a:after,.header__nav>li>a:before{content:'';position:absolute;bottom:-1px;left:50%;width:0;height:0;opacity:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-style:solid;border-width:0 5px 5px 5px;-webkit-transition:opacity .15s ease-in-out;transition:opacity .15s ease-in-out;border-color:transparent transparent #fff transparent}.header__nav .li-nav>a:before,.header__nav>li>a:before{left:50%;bottom:0;border-width:0 6px 6px 6px;border-color:transparent transparent #f5f7f8 transparent}@media only screen and (min-width:1050px){.header__nav .li-nav>a,.header__nav>li>a{font-size:1rem}}@media only screen and (min-width:1800px){.header__nav .li-nav>a,.header__nav>li>a{font-size:1.125rem}}.header--open{overflow:hidden}@media only screen and (min-width:600px){.header--open{overflow:visible}}.header--open .content-items{max-height:215px;margin:12px 0 24px}.header--open .search{margin-top:16px;display:block}.header--open .header__toggle:before{z-index:10}.header--open .header__toggle>span:nth-child(1){top:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.header--open .header__toggle>span:nth-child(2){opacity:0}.header--open .header__toggle>span:nth-child(3){top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.header--open .header__items,.header--open .header__items .language__switcher{display:-webkit-box;display:-ms-flexbox;display:flex}.header--open .header__top{z-index:100;position:absolute;left:0;right:8px;background:#fff}@media only screen and (min-width:800px){.header--open .header__top{right:20px}}.header--open .header__top .search{display:none}.header--open .header__logo{z-index:101}.header--open .header__middle{padding-top:60px}.header--open .header__bottom{display:none}.header--open .header__container{max-height:90vh;overflow-x:hidden;overflow-y:auto}@media only screen and (min-width:1050px){.header--open .header__container{overflow:visible}}.header .subnav{position:absolute;-webkit-box-shadow:0 5px 25px 1px rgba(0,0,0,.15);box-shadow:0 5px 25px 1px rgba(0,0,0,.15);background:#fff;visibility:hidden;line-height:1.75rem;max-width:100%;width:100%;left:0;opacity:0;overflow:hidden;border:1px solid #f5f7f8;border-radius:2px;-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out;top:105%;z-index:60;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.header .subnav .subnav__categories{-webkit-box-flex:0;-ms-flex:0 1 280px;flex:0 1 280px;padding:24px 0;background:#f5f7f8;margin-right:0!important}.header .subnav .subnav__categories>li{display:block;font-size:.9375rem;padding:2px 48px 2px 24px}.header .subnav .subnav__categories>li a{display:block;font-weight:700}.header .subnav .subnav__categories>li:hover{background:#e1e1e1}.header .subnav .subnav__heading{margin-bottom:20px}.header .subnav .subnav__content{position:relative;-ms-flex-item-align:start;align-self:flex-start;padding:24px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}@media only screen and (min-width:1050px){.header .subnav .subnav__content{padding-left:32px;padding-right:32px;margin:0 auto;-webkit-box-flex:1;-ms-flex:1 1 600px;flex:1 1 600px}}.header .subnav .subnav__content .heading__container{-ms-flex-preferred-size:100%;flex-basis:100%}.header .subnav .subnav__content:before{content:'';position:absolute;left:0;top:0;bottom:-100%;width:1px;background:rgba(0,0,0,.1)}.languagesEdition .active{font-weight:700}.header__more.dropdown:after{content:'';display:inline-block;vertical-align:middle;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background-repeat:no-repeat;background-position:center;margin-bottom:2px;width:7px;height:7px;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease;background-color:#fff!important;background-size:contain}.header__more.dropdown button{color:#000!important;margin-right:-20px;padding-right:20px;z-index:1000}.header__more.dropdown .dropdown__holder{width:165px}.header__more.dropdown .dropdown__content{padding:13px;padding-top:5px;padding-bottom:5px}.header__more.dropdown .languagesEdition li{border-bottom:1px solid #e6e6e6}.header__more.dropdown .languagesEdition li:last-child{border:0}.logo__data{display:none;color:#666;font-size:.6875rem}@media only screen and (min-width:1050px){.logo__data{display:block;line-height:.8125rem}}.container{padding-left:12px;padding-right:12px;margin:0 auto;min-width:320px;-webkit-transition:padding .15s ease-in-out;transition:padding .15s ease-in-out}@media only screen and (min-width:600px){.container{padding-left:16px;padding-right:16px}}@media only screen and (min-width:800px){.container{padding-left:20px;padding-right:20px}}@media only screen and (min-width:1250px){.container{padding-left:60px;padding-right:60px}}@media only screen and (min-width:1400px){.container{padding-left:20px;padding-right:20px}}.container.white{background:#fff}.container__inner{max-width:1290px;margin:0 auto;-webkit-transition:max-width .15s ease-out;transition:max-width .15s ease-out}.search{display:block;position:relative;z-index:33;width:100%;max-width:100%;margin:0}.search:before{position:absolute;top:50%;right:24px;-webkit-transform:translateY(-50%);transform:translateY(-50%);margin-right:0;z-index:34}.search__bar{display:block;border-radius:2px;position:relative;z-index:33}.search__bar #search{margin-bottom:0;max-width:100%;background:#fff}.search__go{top:50%;right:0;bottom:0;left:auto;position:absolute;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:32;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:36px;line-height:2.25rem;-webkit-box-shadow:none;box-shadow:none;display:block;background:0 0;border:0;font-size:0}@media only screen and (min-width:600px){.search__go{z-index:35}}.header #search,.search__go:hover{cursor:pointer}.header #search{height:36px;position:relative;max-width:100%;background-color:#f5f7f8!important}@media only screen and (min-width:600px){.header #search{font-size:.8125rem;min-width:165px;max-width:100%;opacity:1}}.header #search:hover{cursor:auto}@media only screen and (min-width:1050px){.header #search{margin-left:auto;border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.header #search:focus{min-width:215px}}.header #search:focus{cursor:auto}.header #search .field__desc{display:none}.header #searchForm{width:100%;margin-top:8px}.header #searchForm:before{right:8px}@media only screen and (min-width:600px){.header #searchForm{margin-top:16px}}@media only screen and (min-width:1050px){.header #searchForm{margin-top:0}}</style> <script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date; h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')}; (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c; })(window,document.documentElement,'async-hide','dataLayer',4000, {'GTM-W9GJ5DL':true});</script> <script type="text/javascript"> var loggedIn = false; if (loggedIn) { var userCountryId = ''; } </script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('config', 'G-VMVPD4D2JY'); //CookieControl tool recomendation // Call the default command before gtag.js or Tag Manager runs to // adjust how the tags operate when they run. Modify the defaults // per your business requirements and prior consent granted/denied, e.g.: gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied' }); if((typeof loggedIn != "undefined") && loggedIn){ window.dataLayer.push({'logged_in': 'true'}); } else { window.dataLayer.push({'logged_in': 'false'}); } window.dataLayer.push({'show_queryz': ''}); </script> <!-- Google Tag Manager --> <script> var gtmProfile="GTM-W9GJ5DL"; (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', gtmProfile);</script> <!-- End Google Tag Manager --> <title>Web API - InfoQ</title> <link rel="canonical" href="https://www.infoq.com/fr/webapi/"/> <link rel="alternate" href="https://www.infoq.com/fr/webapi/" hreflang="fr"/> <link rel="alternate" href="https://www.infoq.com/jp/WebAPI/" hreflang="ja" /> <link rel="alternate" href="https://www.infoq.com/br/WebAPI/" hreflang="pt" /> <link rel="alternate" href="https://www.infoq.com/WebAPI/" hreflang="en" /> <link rel="alternate" href="https://www.infoq.com/WebAPI/" hreflang="x-default" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="cache-control" content="private,no-cache,no-store,must-revalidate" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="copyright" content="© 2006 C4Media" /> <meta name="google-site-verification" content="0qInQx_1WYOeIIbxnh7DnXlw1XOxNgAYakO2k4GhNnY" /> <meta name="msapplication-TileColor" content="#ffffff"/> <meta name="msapplication-TileImage" content="/styles/static/images/logo/logo.jpg"/> <meta property="wb:webmaster" content="3eac1729a8bbe046" /> <meta content="width=device-width,initial-scale=1" name="viewport"> <meta http-equiv="X-UA-Compatible" content="IE=10, IE=edge"> <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/style.css"/> <link rel="stylesheet" type="text/css" media="print" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/print.css"/> <link rel="preload" type="text/css" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/style_fr.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link rel="preload" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/icons.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link rel="preload" type="text/css" media="screen" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/style_extra.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript> <link rel="stylesheet" type="text/css" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/style_fr.css"/> <link rel="stylesheet" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/icons.css"> <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/style_extra.css"/> </noscript> <link rel="stylesheet" type="text/css" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/fonts/font.css"/> <link rel="shortcut icon" href="https://cdn.infoq.com/statics_s2_20250228123450/favicon.ico" type="image/x-icon" /> <link rel="apple-touch-icon" href="https://cdn.infoq.com/statics_s2_20250228123450/apple-touch-icon.png"/> <script type="text/javascript"> var device='desktop'; var InfoQConstants = {}; InfoQConstants.language = 'fr'; InfoQConstants.countryCode = '/fr'; InfoQConstants.pageUrl = (typeof window.location != 'undefined' && window.location && typeof window.location.href != 'undefined' && window.location.href) ? window.location.href : "URL_UNAVAILABLE"; InfoQConstants.cet='NQsIuqslaUg7WuNB'; InfoQConstants.userDetectedCountryCode = 'SG'; InfoQConstants.bpadb = 'oCOjWmPC4BS3qhTDkqXP'; </script> <script type="text/javascript" src="https://cdn.infoq.com/statics_s2_20250228123450/scripts/combinedJs.min.js"></script> <script type="text/javascript"> var JSi18n = JSi18n || {}; // define only if not already defined JSi18n.error='Erreur'; JSi18n.login_unverifiedAccount='Compte non vérifié'; JSi18n.contentSummary_showPresentations_1=''; JSi18n.contentSummary_showPresentations_2=''; JSi18n.contentSummary_showPresentations_3=''; JSi18n.contentSummary_showInterviews_1=''; JSi18n.contentSummary_showInterviews_2=''; JSi18n.contentSummary_showInterviews_3=''; JSi18n.contentSummary_showMinibooks_1=''; JSi18n.contentSummary_showMinibooks_2=''; JSi18n.login_sendingRequest='Envoi de la requête ...'; JSi18n.bookmark_saved='<q> Enregistré </q>'; JSi18n.bookmark_error='<q style=color:black;> Erreur </q>'; JSi18n.categoryManagement_showpopup_viewAllLink_viewAllPrefix='Voir tout'; JSi18n.categoryManagement_showpopup_viewAllLink_viewAllSuffix=''; JSi18n.categoryManagement_showpopup_includeExcludeLink_Exclude='Exclure'; JSi18n.categoryManagement_showpopup_includeExcludeLink_Include='Inclure'; JSi18n.login_invalid_email='Veuillez indiquer une adresse email valide'; JSi18n.login_email_not_found = 'Aucun utilisateur trouvé pour cette adresse email'; JSi18n.content_datetime_format='dd MMM yyyy'; // used by frontend JSi18n.FE = { labels: { follow: "Suivre", followTopic: "SUIVRE LE SUJET", unfollow: "Se désabonner", unfollowTopic: "NE PLUS SUIVRE LE SUJET", following: "Abonnements", followers: "Abonnés", like: "J'aime", liked: "a aimé", authors: "Pairs", users : "Lecteurs", topics: "Sujets", hide: "Masquer l’élément", hidden: "%s était masqué sur votre profil.", undo: "Annuler", showLess: "Voir moins", showMore: "En savoir plus", moreAuthors: "Et %s de plus", bookmarked: "Content Bookmarked", unbookmarked: "Content Unbookmarked", characterLimit: "Caractère(s) restant(s)" } } var usersInPage = JSON.parse('[{\"id\":\"185854\",\"ref\":\"author-Mark-Little\",\"url\":\"\/fr\/profile\/Mark-Little\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Mark Little\",\"bio\":\"\",\"followers\":27,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/xB1yXvMX35Z1n_PyGih_INWGt9sgw+bc.jpg\"},{\"id\":\"56724653\",\"ref\":\"author-Simon-Basl\u00E9\",\"url\":\"\/fr\/profile\/Simon-Basl\u00E9\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Simon Basl\u00E9\",\"bio\":\"\",\"followers\":19,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/5zGn0NFEjeGwZoXawlki973sVq4NxwSl.jpg\"},{\"id\":\"3885831\",\"ref\":\"author-Michael-Redlich\",\"url\":\"\/fr\/profile\/Michael-Redlich\",\"followedByCurrentUser\":false,\"minibio\":\"Java Champion | Java Queue Lead Editor | Director at GSJUG\",\"name\":\"Michael Redlich\",\"bio\":\"\",\"followers\":561,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/TxhBF2gloUbm6EjmEsvlQPphHPLElD6g.jpg\"},{\"id\":\"646\",\"ref\":\"author-Abel-Avram\",\"url\":\"\/fr\/profile\/Abel-Avram\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Abel Avram\",\"bio\":\"\",\"followers\":64,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/IHTGcfeT8uvNGXAR5f6hPB0iriEMj0d3.jpg\"},{\"id\":\"101757789\",\"ref\":\"author-Chris-Woodrow\",\"url\":\"\/fr\/profile\/Chris-Woodrow\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Chris Woodrow\",\"bio\":\"\",\"followers\":1,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/5tmJ6Ub8bKHej06i6Yuv5LgKVXEAZgfm.jpg\"},{\"id\":\"57868704\",\"ref\":\"author-Hadrien-Pierart\",\"url\":\"\/fr\/profile\/Hadrien-Pierart\",\"followedByCurrentUser\":false,\"minibio\":\"Hadrien est d\u00E9veloppeur et formateur freelance. \",\"name\":\"Hadrien Pierart\",\"bio\":\"\",\"followers\":0,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/p5YLuIZCWOunP0MZnQ4gP9MbVl8FFrvZ.jpg\"},{\"id\":\"43528774\",\"ref\":\"author-Otavio-Santana\",\"url\":\"\/fr\/profile\/Otavio-Santana\",\"followedByCurrentUser\":false,\"minibio\":\"A passionate, Award-winning Software Engineer and Architect\",\"name\":\"Otavio Santana\",\"bio\":\"\",\"followers\":168,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/XywpPBfal5RvV84xgiFdHtq4ahQS1kYH.jpg\"},{\"id\":\"61284702\",\"ref\":\"author-Jean~Michel-Doudoux\",\"url\":\"\/fr\/profile\/Jean~Michel-Doudoux\",\"followedByCurrentUser\":false,\"minibio\":\"Java Champion\",\"name\":\"Jean-Michel Doudoux\",\"bio\":\"\",\"followers\":82,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/C7ZrnJESj2pPqnkLlft8s3ML6hxm4UaB.jpg\"},{\"id\":\"96863347\",\"ref\":\"author-Margot-Krouwer\",\"url\":\"\/fr\/profile\/Margot-Krouwer\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Margot Krouwer\",\"bio\":\"\",\"followers\":6,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/as2LkCZapTQtPndqJ0AMJ3JvvXtP8u4H.jpeg\"},{\"id\":\"50270429\",\"ref\":\"author-Nicolas-Frankel\",\"url\":\"\/fr\/profile\/Nicolas-Frankel\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Nicolas Frankel\",\"bio\":\"\",\"followers\":20,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/xUqi1zrkwIXYdzv6XvAiYGdM8BBYrKtu.jpg\"},{\"id\":\"19227674\",\"ref\":\"author-Pierre-Queinnec\",\"url\":\"\/fr\/profile\/Pierre-Queinnec\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Pierre Queinnec\",\"bio\":\"\",\"followers\":0,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/MRU9iTHqmUx1JROjuemQBFLWVCL9g0N5.jpg\"},{\"id\":\"66520046\",\"ref\":\"author-St\u00E9phane-Wojewoda\",\"url\":\"\/fr\/profile\/St\u00E9phane-Wojewoda\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"St\u00E9phane Wojewoda\",\"bio\":\"\",\"followers\":41,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/TUUHjvThQOkY6KLs9avFZ2o8XvgB53Ab.png\"},{\"id\":\"126570391\",\"ref\":\"author-Sylvie-Knaff\",\"url\":\"\/fr\/profile\/Sylvie-Knaff\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Sylvie Knaff\",\"bio\":\"\",\"followers\":4,\"imgSrc\":\"\"},{\"id\":\"229\",\"ref\":\"author-Stefan-Tilkov\",\"url\":\"\/fr\/profile\/Stefan-Tilkov\",\"followedByCurrentUser\":false,\"minibio\":\"Stefan Tilkov, CEO\/Principal Consultant at innoQ\",\"name\":\"Stefan Tilkov\",\"bio\":\"\",\"followers\":21,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/qr7kCnmebgde7yNzjirx_RiuNbEza4_c.jpg\"},{\"id\":\"45785585\",\"ref\":\"author-Benjamin-Young\",\"url\":\"\/fr\/profile\/Benjamin-Young\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Benjamin Young\",\"bio\":\"\",\"followers\":1,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/bp2IVEJxkyqjEYOlts3ayzhzqURHYmhX.jpg\"},{\"id\":\"101756701\",\"ref\":\"author-Brice-Leporini\",\"url\":\"\/fr\/profile\/Brice-Leporini\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Brice Leporini\",\"bio\":\"\",\"followers\":16,\"imgSrc\":\"\"},{\"id\":\"101760325\",\"ref\":\"author-Mike-Rozlog\",\"url\":\"\/fr\/profile\/Mike-Rozlog\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Mike Rozlog\",\"bio\":\"\",\"followers\":3,\"imgSrc\":\"\"},{\"id\":\"126394376\",\"ref\":\"author-Guy-Nesher\",\"url\":\"\/fr\/profile\/Guy-Nesher\",\"followedByCurrentUser\":false,\"minibio\":\"Team lead at Redis\",\"name\":\"Guy Nesher\",\"bio\":\"\",\"followers\":38,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/VXVqHhpj3V1TKHjVawffPjEZvWYofu6t.jpg\"},{\"id\":\"39485652\",\"ref\":\"author-Daniel-Bryant\",\"url\":\"\/fr\/profile\/Daniel-Bryant\",\"followedByCurrentUser\":false,\"minibio\":\"InfoQ News Manager | Building Platforms at Syntasso\",\"name\":\"Daniel Bryant\",\"bio\":\"\",\"followers\":2595,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/tSe5dczMaSGtRUm18VkTR2tcF4W3SogA.jpg\"},{\"id\":\"74940\",\"ref\":\"author-Jeevak-Kasarkod\",\"url\":\"\/fr\/profile\/Jeevak-Kasarkod\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Jeevak Kasarkod\",\"bio\":\"\",\"followers\":4,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/ZVugHsUF48KYHrgAX1gCYvUQHZc2adwS.jpg\"},{\"id\":\"101756612\",\"ref\":\"author-Roopesh-Shenoy\",\"url\":\"\/fr\/profile\/Roopesh-Shenoy\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Roopesh Shenoy\",\"bio\":\"\",\"followers\":2,\"imgSrc\":\"\"},{\"id\":\"42047785\",\"ref\":\"author-Julien-Delhomme\",\"url\":\"\/fr\/profile\/Julien-Delhomme\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Julien Delhomme\",\"bio\":\"\",\"followers\":4,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/rMP6Kw37MKA1cqdbB42WAOXM7U4tLGYN.jpg\"},{\"id\":\"2027339\",\"ref\":\"author-Jan-Stenberg\",\"url\":\"\/fr\/profile\/Jan-Stenberg\",\"followedByCurrentUser\":false,\"minibio\":\"Architecture and DDD Enthusiast\",\"name\":\"Jan Stenberg\",\"bio\":\"\",\"followers\":315,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/lZ0FZ1ht1Qc1Hu08wMMtUMeGvUvfCa4Z.jpg\"},{\"id\":\"21186991\",\"ref\":\"author-Slim-Ouertani\",\"url\":\"\/fr\/profile\/Slim-Ouertani\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Slim Ouertani\",\"bio\":\"\",\"followers\":19,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/CyyeDmzyWtAxeZfcEFcSBmSxJ0MIouej.jpg\"},{\"id\":\"20149\",\"ref\":\"author-Matt-Raible\",\"url\":\"\/fr\/profile\/Matt-Raible\",\"followedByCurrentUser\":false,\"minibio\":\"Open Source Developer\",\"name\":\"Matt Raible\",\"bio\":\"\",\"followers\":156,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/ZfXn72M7Lapv_ecin5eaAt9kkiyyBK76.jpg\"},{\"id\":\"80977916\",\"ref\":\"author-Thomas-Betts\",\"url\":\"\/fr\/profile\/Thomas-Betts\",\"followedByCurrentUser\":false,\"minibio\":\"Laureate Application Architect at Blackbaud\",\"name\":\"Thomas Betts\",\"bio\":\"\",\"followers\":976,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/pSqI6HrU3k9rmmVjwS34OHG0bOMYiE6a.jpg\"},{\"id\":\"101757488\",\"ref\":\"author-Simon-Courtois\",\"url\":\"\/fr\/profile\/Simon-Courtois\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Simon Courtois\",\"bio\":\"\",\"followers\":0,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/2DVF0MChL83j4kADbsUSFKfTrjiUomcE.jpg\"},{\"id\":\"108284278\",\"ref\":\"author-Shelby-Switzer\",\"url\":\"\/fr\/profile\/Shelby-Switzer\",\"followedByCurrentUser\":false,\"minibio\":\"Writer, API builder, and international speaker\",\"name\":\"Shelby Switzer\",\"bio\":\"\",\"followers\":1,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/i4yv1HB0YW6tryf4qxPJuAwxqlw2fPIp.jpg\"},{\"id\":\"72028228\",\"ref\":\"author-Sergio-De-Simone\",\"url\":\"\/fr\/profile\/Sergio-De-Simone\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Sergio De Simone\",\"bio\":\"\",\"followers\":629,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/NovciOoQOAYWqYqRQBFo97SuMm0xbUiC.jpg\"},{\"id\":\"110207\",\"ref\":\"author-Charles-Humble\",\"url\":\"\/fr\/profile\/Charles-Humble\",\"followedByCurrentUser\":false,\"minibio\":\"Techie, podcaster, editor, author and consultant\",\"name\":\"Charles Humble\",\"bio\":\"\",\"followers\":2014,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/lCB_2ocIPJA40tWqjmkSLeVd5ZhJQlt_.jpg\"},{\"id\":\"101757280\",\"ref\":\"author-Matt-McLarty\",\"url\":\"\/fr\/profile\/Matt-McLarty\",\"followedByCurrentUser\":false,\"minibio\":\"CTO @Boomi\",\"name\":\"Matt McLarty\",\"bio\":\"\",\"followers\":35,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/bKkVx4GT9o0cNUPZvQqjNvL9wzlbAGrr.jpeg\"},{\"id\":\"126464202\",\"ref\":\"author-Johan-Janssen\",\"url\":\"\/fr\/profile\/Johan-Janssen\",\"followedByCurrentUser\":false,\"minibio\":\"Architect at ASML\",\"name\":\"Johan Janssen\",\"bio\":\"\",\"followers\":401,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/Fb4eZ0mtvMf6MhsmBIhsUVueV4xAs2FD.jpg\"},{\"id\":\"101762118\",\"ref\":\"author-Mathieu-Pousse\",\"url\":\"\/fr\/profile\/Mathieu-Pousse\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Mathieu Pousse\",\"bio\":\"\",\"followers\":1,\"imgSrc\":\"https:\/\/cdn.infoq.com\/statics_s2_20250228123450\/images\/profiles\/6hBSUN2GZjPKI1Ws9cSLs5W1KgDDzgrC.png\"},{\"id\":\"104345544\",\"ref\":\"author-Arnaud-Kervern\",\"url\":\"\/fr\/profile\/Arnaud-Kervern\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Arnaud Kervern\",\"bio\":\"\",\"followers\":0,\"imgSrc\":\"\"},{\"id\":\"126206581\",\"ref\":\"author-Nizar-Yassine\",\"url\":\"\/fr\/profile\/Nizar-Yassine\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Nizar Yassine\",\"bio\":\"\",\"followers\":1,\"imgSrc\":\"\"},{\"id\":\"101763947\",\"ref\":\"author-Philippe-Mioulet\",\"url\":\"\/fr\/profile\/Philippe-Mioulet\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Philippe Mioulet\",\"bio\":\"\",\"followers\":0,\"imgSrc\":\"\"},{\"id\":\"101762848\",\"ref\":\"author-Virginie-Bardales\",\"url\":\"\/fr\/profile\/Virginie-Bardales\",\"followedByCurrentUser\":false,\"minibio\":\"\",\"name\":\"Virginie Bardales\",\"bio\":\"\",\"followers\":0,\"imgSrc\":\"\"}]'); var topicsInPage = JSON.parse('[{\"name\":\"Kanban\",\"id\":\"11712\",\"followers\":155,\"url\":\"\/fr\/Kanban\",\"followedByCurrentUser\":false},{\"name\":\"Lean\",\"id\":\"10563\",\"followers\":149,\"url\":\"\/fr\/lean\",\"followedByCurrentUser\":false},{\"name\":\"Domain Driven Design\",\"id\":\"11081\",\"followers\":176,\"url\":\"\/fr\/domain-driven-design\",\"followedByCurrentUser\":false},{\"name\":\"DevOps\",\"id\":\"12234\",\"followers\":48,\"url\":\"\/fr\/Devops\",\"followedByCurrentUser\":false},{\"name\":\"Microservices\",\"id\":\"15758\",\"followers\":200,\"url\":\"\/fr\/micro\",\"followedByCurrentUser\":false},{\"name\":\"Web API\",\"id\":\"12623\",\"followers\":10,\"url\":\"\/fr\/WebAPI\",\"followedByCurrentUser\":false},{\"name\":\"D\u00E9veloppement\",\"id\":\"12691\",\"followers\":41,\"url\":\"\/fr\/development\",\"followedByCurrentUser\":false},{\"name\":\"Architecture & Design\",\"id\":\"12692\",\"followers\":66,\"url\":\"\/fr\/architecture-design\",\"followedByCurrentUser\":false},{\"name\":\"LegacyClub\",\"id\":\"17429\",\"followers\":53,\"url\":\"\/fr\/lagacyclub\",\"followedByCurrentUser\":false},{\"name\":\"Culture & M\u00E9thodes\",\"id\":\"12693\",\"followers\":90,\"url\":\"\/fr\/culture-methods\",\"followedByCurrentUser\":false},{\"name\":\"Java\",\"id\":\"10518\",\"followers\":98,\"url\":\"\/fr\/java\",\"followedByCurrentUser\":false},{\"name\":\"Agile\",\"id\":\"10520\",\"followers\":281,\"url\":\"\/fr\/agile\",\"followedByCurrentUser\":false},{\"name\":\"Data Science\",\"id\":\"15900\",\"followers\":28,\"url\":\"\/fr\/ai-ml-data-eng\",\"followedByCurrentUser\":false}]'); var userContentLikesInPage = []; var userCommentsLikesInPage = []; var currentUserId = 2; </script> <meta name="keywords" content="Web API,WebAPI"/> <meta name="description" content="Aider les équipes de développement à adopter de nouvelles technologies et pratiques. Rédigé par des ingénieurs logiciel. Lu par plus de 1,5 million de développeurs dans le monde."/> <link rel="alternate" type="application/rss+xml" title="RSS" href="https://feed.infoq.com/fr/WebAPI/"/> <meta name="ifq:pageType" content="CATEGORY_PAGE"/> <script type="text/javascript"> InfoQConstants.pageType = 'CATEGORY_PAGE'; window.isIndexPage = true; </script> <link rel="image_src" href="https://cdn.infoq.com/statics_s2_20250228123450/styles/static/images/logo/logo-big.jpg" /> <meta property="og:image" content="https://cdn.infoq.com/statics_s2_20250228123450/styles/static/images/logo/logo-big.jpg"/> <script type="text/javascript" src="https://cdn.infoq.com/statics_s2_20250228123450/scripts/infoq.js"></script> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { if (!window || !window.infoq) return infoq.init() }) </script> </head> <body > <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W9GJ5DL" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="intbt"> <a href="/int/bt/" title="bt">BT</a> </div> <script type="text/javascript"> var allCountries = [{"id":3,"name":"Afghanistan"},{"id":244,"name":"Åland"},{"id":6,"name":"Albania"},{"id":61,"name":"Algeria"},{"id":13,"name":"American Samoa"},{"id":1,"name":"Andorra"},{"id":9,"name":"Angola"},{"id":5,"name":"Anguilla"},{"id":11,"name":"Antarctica"},{"id":4,"name":"Antigua and Barbuda"},{"id":12,"name":"Argentina"},{"id":7,"name":"Armenia"},{"id":16,"name":"Aruba"},{"id":15,"name":"Australia"},{"id":14,"name":"Austria"},{"id":17,"name":"Azerbaijan"},{"id":31,"name":"Bahamas"},{"id":24,"name":"Bahrain"},{"id":20,"name":"Bangladesh"},{"id":19,"name":"Barbados"},{"id":35,"name":"Belarus"},{"id":21,"name":"Belgium"},{"id":36,"name":"Belize"},{"id":26,"name":"Benin"},{"id":27,"name":"Bermuda"},{"id":32,"name":"Bhutan"},{"id":29,"name":"Bolivia"},{"id":254,"name":"Bonaire, Sint Eustatius, and Saba"},{"id":18,"name":"Bosnia and Herzegovina"},{"id":34,"name":"Botswana"},{"id":33,"name":"Bouvet Island"},{"id":30,"name":"Brazil"},{"id":104,"name":"British Indian Ocean Territory"},{"id":28,"name":"Brunei Darussalam"},{"id":23,"name":"Bulgaria"},{"id":22,"name":"Burkina Faso"},{"id":25,"name":"Burundi"},{"id":114,"name":"Cambodia"},{"id":46,"name":"Cameroon"},{"id":37,"name":"Canada"},{"id":52,"name":"Cape Verde"},{"id":121,"name":"Cayman Islands"},{"id":40,"name":"Central African Republic"},{"id":207,"name":"Chad"},{"id":45,"name":"Chile"},{"id":47,"name":"China"},{"id":53,"name":"Christmas Island"},{"id":38,"name":"Cocos (Keeling) Islands"},{"id":48,"name":"Colombia"},{"id":116,"name":"Comoros"},{"id":39,"name":"Congo (Democratic Republic)"},{"id":41,"name":"Congo (People\u0027s Republic)"},{"id":44,"name":"Cook Islands"},{"id":49,"name":"Costa Rica"},{"id":43,"name":"Cote D\u0027Ivoire"},{"id":97,"name":"Croatia"},{"id":51,"name":"Cuba"},{"id":253,"name":"Curaçao"},{"id":54,"name":"Cyprus"},{"id":55,"name":"Czech Republic"},{"id":58,"name":"Denmark"},{"id":57,"name":"Djibouti"},{"id":59,"name":"Dominica"},{"id":60,"name":"Dominican Republic"},{"id":213,"name":"East Timor"},{"id":62,"name":"Ecuador"},{"id":64,"name":"Egypt"},{"id":203,"name":"El Salvador"},{"id":87,"name":"Equatorial Guinea"},{"id":66,"name":"Eritrea"},{"id":63,"name":"Estonia"},{"id":68,"name":"Ethiopia"},{"id":72,"name":"Falkland Islands (Malvinas)"},{"id":74,"name":"Faroe Islands"},{"id":71,"name":"Fiji"},{"id":70,"name":"Finland"},{"id":75,"name":"France"},{"id":80,"name":"French Guiana"},{"id":170,"name":"French Polynesia"},{"id":208,"name":"French Southern Territories"},{"id":76,"name":"Gabon"},{"id":84,"name":"Gambia"},{"id":79,"name":"Georgia"},{"id":56,"name":"Germany"},{"id":81,"name":"Ghana"},{"id":82,"name":"Gibraltar"},{"id":88,"name":"Greece"},{"id":83,"name":"Greenland"},{"id":78,"name":"Grenada"},{"id":86,"name":"Guadeloupe"},{"id":91,"name":"Guam"},{"id":90,"name":"Guatemala"},{"id":249,"name":"Guernsey"},{"id":85,"name":"Guinea"},{"id":92,"name":"Guinea-Bissau"},{"id":93,"name":"Guyana"},{"id":98,"name":"Haiti"},{"id":95,"name":"Heard Island and McDonald Islands"},{"id":96,"name":"Honduras"},{"id":94,"name":"Hong Kong"},{"id":99,"name":"Hungary"},{"id":107,"name":"Iceland"},{"id":103,"name":"India"},{"id":100,"name":"Indonesia"},{"id":106,"name":"Iran"},{"id":105,"name":"Iraq"},{"id":101,"name":"Ireland"},{"id":245,"name":"Isle of Man"},{"id":102,"name":"Israel"},{"id":108,"name":"Italy"},{"id":109,"name":"Jamaica"},{"id":111,"name":"Japan"},{"id":250,"name":"Jersey"},{"id":110,"name":"Jordan"},{"id":122,"name":"Kazakhstan"},{"id":112,"name":"Kenya"},{"id":115,"name":"Kiribati"},{"id":243,"name":"Kosovo"},{"id":120,"name":"Kuwait"},{"id":113,"name":"Kyrgyzstan"},{"id":123,"name":"Laos"},{"id":132,"name":"Latvia"},{"id":124,"name":"Lebanon"},{"id":129,"name":"Lesotho"},{"id":128,"name":"Liberia"},{"id":133,"name":"Libya"},{"id":126,"name":"Liechtenstein"},{"id":130,"name":"Lithuania"},{"id":131,"name":"Luxembourg"},{"id":143,"name":"Macau"},{"id":139,"name":"Macedonia"},{"id":137,"name":"Madagascar"},{"id":151,"name":"Malawi"},{"id":153,"name":"Malaysia"},{"id":150,"name":"Maldives"},{"id":140,"name":"Mali"},{"id":148,"name":"Malta"},{"id":138,"name":"Marshall Islands"},{"id":145,"name":"Martinique"},{"id":146,"name":"Mauritania"},{"id":149,"name":"Mauritius"},{"id":238,"name":"Mayotte"},{"id":152,"name":"Mexico"},{"id":73,"name":"Micronesia"},{"id":136,"name":"Moldova"},{"id":135,"name":"Monaco"},{"id":142,"name":"Mongolia"},{"id":246,"name":"Montenegro"},{"id":147,"name":"Montserrat"},{"id":134,"name":"Morocco"},{"id":154,"name":"Mozambique"},{"id":141,"name":"Myanmar"},{"id":155,"name":"Namibia"},{"id":164,"name":"Nauru"},{"id":163,"name":"Nepal"},{"id":161,"name":"Netherlands"},{"id":8,"name":"Netherlands Antilles"},{"id":156,"name":"New Caledonia"},{"id":166,"name":"New Zealand"},{"id":160,"name":"Nicaragua"},{"id":157,"name":"Niger"},{"id":159,"name":"Nigeria"},{"id":165,"name":"Niue"},{"id":158,"name":"Norfolk Island"},{"id":118,"name":"North Korea"},{"id":144,"name":"Northern Mariana Islands"},{"id":162,"name":"Norway"},{"id":167,"name":"Oman"},{"id":173,"name":"Pakistan"},{"id":180,"name":"Palau"},{"id":178,"name":"Palestinian Territory"},{"id":168,"name":"Panama"},{"id":171,"name":"Papua New Guinea"},{"id":181,"name":"Paraguay"},{"id":169,"name":"Peru"},{"id":172,"name":"Philippines"},{"id":176,"name":"Pitcairn"},{"id":174,"name":"Poland"},{"id":179,"name":"Portugal"},{"id":177,"name":"Puerto Rico"},{"id":182,"name":"Qatar"},{"id":183,"name":"Reunion"},{"id":184,"name":"Romania"},{"id":185,"name":"Russian Federation"},{"id":186,"name":"Rwanda"},{"id":193,"name":"Saint Helena"},{"id":117,"name":"Saint Kitts and Nevis"},{"id":125,"name":"Saint Lucia"},{"id":251,"name":"Saint Martin"},{"id":175,"name":"Saint Pierre and Miquelon"},{"id":229,"name":"Saint Vincent and the Grenadines"},{"id":247,"name":"Saint-Barthélemy"},{"id":236,"name":"Samoa"},{"id":198,"name":"San Marino"},{"id":202,"name":"Sao Tome and Principe"},{"id":187,"name":"Saudi Arabia"},{"id":199,"name":"Senegal"},{"id":248,"name":"Serbia"},{"id":189,"name":"Seychelles"},{"id":197,"name":"Sierra Leone"},{"id":192,"name":"Singapore"},{"id":252,"name":"Sint Maarten"},{"id":196,"name":"Slovakia"},{"id":194,"name":"Slovenia"},{"id":188,"name":"Solomon Islands"},{"id":200,"name":"Somalia"},{"id":239,"name":"South Africa"},{"id":89,"name":"South Georgia and the South Sandwich Islands"},{"id":119,"name":"South Korea"},{"id":255,"name":"South Sudan"},{"id":67,"name":"Spain"},{"id":127,"name":"Sri Lanka"},{"id":190,"name":"Sudan"},{"id":201,"name":"Suriname"},{"id":195,"name":"Svalbard and Jan Mayen"},{"id":205,"name":"Swaziland"},{"id":191,"name":"Sweden"},{"id":42,"name":"Switzerland"},{"id":204,"name":"Syria"},{"id":220,"name":"Taiwan"},{"id":211,"name":"Tajikistan"},{"id":221,"name":"Tanzania"},{"id":210,"name":"Thailand"},{"id":209,"name":"Togo"},{"id":212,"name":"Tokelau"},{"id":216,"name":"Tonga"},{"id":218,"name":"Trinidad and Tobago"},{"id":215,"name":"Tunisia"},{"id":217,"name":"Turkey"},{"id":214,"name":"Turkmenistan"},{"id":206,"name":"Turks and Caicos Islands"},{"id":219,"name":"Tuvalu"},{"id":223,"name":"Uganda"},{"id":222,"name":"Ukraine"},{"id":2,"name":"United Arab Emirates"},{"id":77,"name":"United Kingdom"},{"id":224,"name":"United States Minor Outlying Islands"},{"id":226,"name":"Uruguay"},{"id":225,"name":"USA"},{"id":227,"name":"Uzbekistan"},{"id":234,"name":"Vanuatu"},{"id":228,"name":"Vatican City (Holy See)"},{"id":230,"name":"Venezuela"},{"id":233,"name":"Vietnam"},{"id":231,"name":"Virgin Islands (British)"},{"id":232,"name":"Virgin Islands (U.S.)"},{"id":235,"name":"Wallis and Futuna"},{"id":65,"name":"Western Sahara"},{"id":237,"name":"Yemen"},{"id":241,"name":"Zaire"},{"id":240,"name":"Zambia"},{"id":242,"name":"Zimbabwe"}]; var gdprCountriesIds = [196,194,191,184,179,174,161,148,132,131,130,108,101,99,97,88,77,75,70,67,63,58,56,55,54,37,23,21,14]; </script> <div class="infoq" id="infoq"> <!-- ####### SITE START ######### --> <header class="header"> <button aria-label="Toggle Navigation" tabindex="0" class="burger header__toggle button">Toggle Navigation <span></span><span></span><span></span></button> <div class="header__container container"> <div class="container__inner"> <div data-nosnippet class="actions header__top"> <div class="actions__left"> <p class="header__desc my-0"> Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise </p> <div class="button__dropdown dropdown header__more my-0 dropdown__center"> <button aria-label="English edition" class="button button__unstyled button__small">French edition</button> <div class="dropdown__holder"> <!----> <div class="dropdown__content"> <ul class="no-style dropdown__nav languagesEdition"> <li><a href="/">English edition</a></li> <li><a href="https://www.infoq.cn">Chinese edition</a></li> <li><a href="/jp/">Japanese edition</a></li> <li class="active"><a href="#" onclick="return false;">French edition</a></li> </ul> </div> <!----> </div> </div> <a class="my-0 contribute-link" role="button" href="/fr/write-for-infoq/" title="Contribuez"> Contribuez </a> </div> <div class="actions__right"> <div> <form id="searchForm" name="search-form" action="/fr/search.action" enctype="multipart/form-data" class="search icon__search icon icon__green"> <div class="field search__bar input__text input__no-label input__small"> <label for="search" class="label field__label">Rechercher</label> <input name="queryString" type="text" id="search" value="" placeholder="Rechercher" class="input field__input"> <input type="hidden" name="page" value="1"/> <input type="hidden" size="15" name="searchOrder"> </div> <input value="Rechercher" type="submit" class="search__go"> </form> </div> <div class="button__dropdown dropdown user__login"> <button aria-label="INSCRIPTION / CONNEXION" class="button button__small button__green button__arrow arrow__true button__icon icon icon__user icon--only">INSCRIPTION / CONNEXION</button> <div class="dropdown__holder"> <div class="dropdown__content"> <div class="login__dropdown"> <div class="login__module"> <div class="login__username"> <form id="login-form" data-vv-scope="login" class="login__form form" action="/fr/login.action"> <input type="hidden" id="loginWidgetOrigin" name="loginWidgetOrigin" value="mainLogin"/> <input type="hidden" name="fromP13N" id="isP13n" value="false"/> <input type="hidden" name="fromP13NId" id="p13n-id" value=""/> <input type="hidden" name="fromP13NType" id="p13n-type" value=""/> <div class="field form__row input__text input__small" data-vv-as="Email" data-vv-scope="login"> <label for="email" class="label field__label">Email</label> <input type="text" id="email" placeholder="" class="input field__input" name="username"> </div> <div class="field form__row input__password input__small" data-vv-as="Mot de passe" data-vv-scope="login"> <label for="password" class="label field__label">Mot de passe</label> <input type="password" id="password" placeholder="" class="input field__input" name="password"> <p data-message="resultMessage"></p> </div> <input type="submit" value="Connexion" class="form__row button button__medium button__green"> <div class="login__actions"> <button aria-label="Mot de passe oublié ?" class="forgot button button__unstyled">Mot de passe oublié ?</button> </div> </form> <form id="forgot-password-form" data-vv-scope="forgot" class="forgot__form form" action="/fr/resetpasswordinit.action" onsubmit="UserActions_Login.showMessage($(this),JSi18n.login_sendingRequest);"> <div data-vv-as="Email" data-vv-scope="forgot" class="field form__row input__text input__small"> <label for="forgotten_email" class="label field__label">Email du compte InfoQ</label> <input id="forgotten_email" name="email" placeholder="" class="input field__input" type="text" onkeyup="UserActions_ResetPass.checkInputStatus('forgotten_email','forgotPassMessage',JSi18n.login_invalid_email,'submit_resetPass');"> <p id="forgotPassMessage" data-message="resultMessage"></p> </div> <input type="submit" id="submit_resetPass" value="Envoyer email de récupération" class="button button__medium button__green" onclick="return UserActions_ResetPass.checkInputStatus('forgotten_email','forgotPassMessage',JSi18n.login_invalid_email,'submit_resetPass');"> <p class="login__actions"> <button aria-label="Retour à la connexion" class="back-to-login button button__unstyled">Retour à la connexion</button> </p> </form> <form id="email-revalidation-form" data-vv-scope="revalidation" class="revalidation__form form" action="/fr/reactivate.action" onsubmit="UserActions_Login.showMessage($(this),JSi18n.login_sendingRequest);"> <div data-vv-as="Email" data-vv-scope="revalidation" class="field form__row input__text input__small"> <label for="revalidated_email" class="label field__label">Renvoyer l'Activation</label> <input id="revalidated_email" name="email" placeholder="" class="input field__input" type="text" onkeyup="UserActions_ResetPass.checkInputStatus('revalidated_email','emailRevalidMessage',JSi18n.login_invalid_email,'submit_resetPass');"> <p id="emailRevalidMessage" data-message="resultMessage"></p> </div> <input type="submit" value="Renvoyer" class="button button__medium button__green" onclick="return UserActions_ResetPass.checkInputStatus('revalidated_email','emailRevalidMessage',JSi18n.login_invalid_email,'submit_resetPass');"> <p class="login__actions"> <button id="show-login" aria-label="Retour à la connexion" class="back-to-login button button__unstyled">Retour à la connexion</button> </p> </form> </div> <div class="login__social"> <h4 class="heading">Connexion avec:</h4> <div class="social__connect form__row login__socials"> <a href="/fr/social/googleLogin.action?fl=login" onclick="return UserActions_Login.addLoginInfo(this);" class="button button__medium button__gray button__icon icon icon__google" title="Connexion avec Google">Google</a> <a href="/fr/social/liveLogin.action?fl=login" onclick="return UserActions_Login.addLoginInfo(this);" class="button button__medium button__icon icon icon__microsoft" title="Connexion avec Microsoft">Microsoft</a> <a href="/fr/twitter-info" class="button button__medium button__icon icon icon__twitter" title="Connexion avec Twitter">Twitter</a> <a href="/fr/social/facebookLogin.action?fl=login" onclick="return UserActions_Login.addLoginInfo(this);" class="button button__medium button__icon icon icon__fb" title="Connexion avec Facebook">Facebook</a> </div> </div> <div class="login__signup"> <h4 class="heading">Vous n'avez pas encore de compte InfoQ ?</h4> <a href="/fr/reginit.action?" onclick="return UserActions_Login.addLoginInfo(this);" class="button button__medium button__green">S'inscrire</a> </div> </div> </div> </div> </div> </div> </div> </div> <div class="header__middle"> <div class="logo header__logo"> <a href="/fr/" class="logo__symbol active"> Logo - Back to homepage </a> </div> <div class="content-items"> <a href="/fr/news/" class="icon icon__news">Actualités</a> <a href="/fr/articles/" class="icon icon__articles">Articles</a> <a href="/fr/presentations/" class="icon icon__presentations">Présentations</a> <a href="/fr/podcasts/" class="icon icon__podcasts">Podcasts</a> <a href="/fr/minibooks/" class="icon icon__guides">Livres</a> </div> <div class="header__items columns"> <div> <h3 class="widget__heading">Sujets</h3> <nav class="nav header__nav topics" data-trk-ref="header_personas"> <div class="has--subnav li-nav"> <a href="/fr/development/" title="Development" class="nav__category">Development</a> <div class="nav__subnav subnav"> <ul class="subnav__categories no-style"> <li><a href="/fr/java/" title="Java">Java</a></li> <li><a href="/fr/clojure/" title="Clojure">Clojure</a></li> <li><a href="/fr/scala/" title="Scala">Scala</a></li> <li><a href="/fr/dotnet/" title=".Net">.Net</a></li> <li><a href="/fr/mobile/" title="Mobile">Mobile</a></li> <li><a href="/fr/android/" title="Android">Android</a></li> <li><a href="/fr/ios/" title="iOS">iOS</a></li> <li><a href="/fr/HTML5Topic/" title="HTML5">HTML5</a></li> <li><a href="/fr/javascript/" title="JavaScript">JavaScript</a></li> <li><a href="/fr/fp/" title="Programmation Fonctionnelle">Programmation Fonctionnelle</a></li> <li><a href="/fr/webapi/" title="Web API">Web API</a></li> </ul> <div class="subnav__content" data-id="12691"> <div class="heading__container actions"> <div class="actions__left"> <h3 class="heading section__heading">A la une dans Développement</h3> </div> </div> <ul data-size="large" data-horizontal="true" data-tax="" taxonomy="articles" class="cards no-style"> <li> <div class="card__content"> <div class="card__data"> <h4 class="card__title"> <a href="/fr/articles/encryption-defense-native-browser-apps">Comment Utiliser Le Chiffrement Pour La Défense En Profondeur Dans Les Apps Natives Et Navigateurs</a> </h4> <p class="card__excerpt">Isaac Potoczny-Jones discute des avantages et des inconvénients du chiffrement de la couche application. Il couvre la surface d'attaque du chiffrement dans la couche application d'un navigateur, comme...</p> <div class="card__footer"></div> </div> <a href="/fr/articles/encryption-defense-native-browser-apps" class="card__header"> <img loading="lazy" alt="Comment Utiliser Le Chiffrement Pour La Défense En Profondeur Dans Les Apps Natives Et Navigateurs" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/encryption-defense-native-browser-apps/fr/smallimage/security-browser-1589240480229.jpg" class="card__image"/> </a> </div> </li> </ul> <a href="/fr/development/" class="button__more button button__large button__arrow arrow__right">Tout voir dans development</a> </div> </div> </div> <div class="has--subnav li-nav"> <a href="/fr/architecture-design/" title="Architecture & Design" class="nav__category">Architecture & Design</a> <div class="nav__subnav subnav"> <ul class="subnav__categories no-style"> <li><a href="/fr/architecture/" title="Architecture">Architecture</a></li> <li><a href="/fr/enterprise-architecture/" title="Architecture Entreprise">Architecture Entreprise</a></li> <li><a href="/fr/performance-scalability/" title="Scalabilité/Performance">Scalabilité/Performance</a></li> <li><a href="/fr/design/" title="Design">Design</a></li> <li><a href="/fr/Case_Study/" title="Case Studies">Case Studies</a></li> <li><a href="/fr/DesignPattern/" title="Patterns">Patterns</a></li> <li><a href="/fr/Security/" title="Sécurité">Sécurité</a></li> </ul> <div class="subnav__content" data-id="12692"> <div class="heading__container actions"> <div class="actions__left"> <h3 class="heading section__heading">A la une dans Architecture & Design</h3> </div> </div> <ul data-size="large" data-horizontal="true" data-tax="" taxonomy="articles" class="cards no-style"> <li> <div class="card__content"> <div class="card__data"> <h4 class="card__title"> <a href="/fr/articles/ballerina-data-functional-programming">Manipulation De Données Avec Programmation Fonctionnelle Et Requêtes Dans Ballerina</a> </h4> <p class="card__excerpt">Ballerina a été conçu comme un langage de programmation orienté données et prend en charge un style de codage de programmation fonctionnel. Le langage de requête de Ballerina est similaire à SQL dans ...</p> <div class="card__footer"></div> </div> <a href="/fr/articles/ballerina-data-functional-programming" class="card__header"> <img loading="lazy" alt="Manipulation De Données Avec Programmation Fonctionnelle Et Requêtes Dans Ballerina" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/ballerina-data-functional-programming/fr/smallimage/logo-1660058595815.jpg" class="card__image"/> </a> </div> </li> </ul> <a href="/fr/architecture-design/" class="button__more button button__large button__arrow arrow__right">Tout voir dans architecture-design</a> </div> </div> </div> <div class="has--subnav li-nav"> <a href="/fr/ai-ml-data-eng/" title="Data Science" class="nav__category">Data Science</a> <div class="nav__subnav subnav"> <ul class="subnav__categories no-style"> <li><a href="/fr/bigdata/" title="Big Data">Big Data</a></li> <li><a href="/fr/machinelearning/" title="Machine Learning">Machine Learning</a></li> <li><a href="/fr/nosql/" title="NoSQL">NoSQL</a></li> <li><a href="/fr/database/" title="Base de données">Base de données</a></li> <li><a href="/fr/data-analytics/" title="Data Analytics">Data Analytics</a></li> </ul> <div class="subnav__content" data-id="15900"> <div class="heading__container actions"> <div class="actions__left"> <h3 class="heading section__heading">A la une dans Data Science</h3> </div> </div> <ul data-size="large" data-horizontal="true" data-tax="" taxonomy="articles" class="cards no-style"> <li> <div class="card__content"> <div class="card__data"> <h4 class="card__title"> <a href="/fr/articles/uber-eats-time-predictions">Les Prédictions De Temps Chez Uber Eats</a> </h4> <p class="card__excerpt">Les prédiction de temps sont essentielles pour les activités d’Uber Eats, elles permettent une répartition optimale des livreurs et garantissent la satisfaction des clients. Nous verrons dans cet art...</p> <div class="card__footer"></div> </div> <a href="/fr/articles/uber-eats-time-predictions" class="card__header"> <img loading="lazy" alt="Les Prédictions De Temps Chez Uber Eats" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/uber-eats-time-predictions/fr/smallimage/predicting-time-to-cook-arrive-deliver-in-uber-eats-logo-small-1573830801103.jpg" class="card__image"/> </a> </div> </li> </ul> <a href="/fr/ai-ml-data-eng/" class="button__more button button__large button__arrow arrow__right">Tout voir dans ai-ml-data-eng</a> </div> </div> </div> <div class="has--subnav li-nav"> <a href="/fr/culture-methods/" title="Culture & Methods" class="nav__category">Culture & Méthodes</a> <div class="nav__subnav subnav"> <ul class="subnav__categories no-style"> <li><a href="/fr/agile/" title="Agile">Agile</a></li> <li><a href="/fr/Leadership/" title="Leadership">Leadership</a></li> <li><a href="/fr/team-collaboration/" title="Team Collaboration">Team Collaboration</a></li> <li><a href="/fr/testing/" title="Tests">Tests</a></li> <li><a href="/fr/pm/" title="Project Management">Project Management</a></li> <li><a href="/fr/ux/" title="UX">UX</a></li> <li><a href="/fr/scrum/" title="Scrum">Scrum</a></li> <li><a href="/fr/lean/" title="Lean/Kanban">Lean/Kanban</a></li> </ul> <div class="subnav__content" data-id="12693"> <div class="heading__container actions"> <div class="actions__left"> <h3 class="heading section__heading">A la une dans Culture & Méthodes</h3> </div> </div> <ul data-size="large" data-horizontal="true" data-tax="" taxonomy="articles" class="cards no-style"> <li> <div class="card__content"> <div class="card__data"> <h4 class="card__title"> <a href="/fr/articles/individual-team-processes">Les Processus De Tests Individuels Ne Peuvent Convenir A Tout Le Monde.</a> </h4> <p class="card__excerpt">De nombreuses entreprises de l'industrie du logiciel ont mis en place des procédures qui sont utilisés par tout le monde dans l'entreprise. Chaque équipe est différente alors pourquoi les procédures s...</p> <div class="card__footer"></div> </div> <a href="/fr/articles/individual-team-processes" class="card__header"> <img loading="lazy" alt="Les Processus De Tests Individuels Ne Peuvent Convenir A Tout Le Monde." src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/individual-team-processes/fr/smallimage/logo-1667318501298.jpg" class="card__image"/> </a> </div> </li> </ul> <a href="/fr/culture-methods/" class="button__more button button__large button__arrow arrow__right">Tout voir dans culture-methods</a> </div> </div> </div> <div class="has--subnav li-nav"> <a href="/fr/devops/" title="DevOps" class="nav__category">DevOps</a> <div class="nav__subnav subnav"> <ul class="subnav__categories no-style"> <li><a href="/fr/infrastructure/" title="Infrastructure">Infrastructure</a></li> <li><a href="/fr/continuous_delivery/" title="Déploiement continu">Déploiement continu</a></li> <li><a href="/fr/automation/" title="Automation">Automation</a></li> <li><a href="/fr/cloud-computing/" title="Cloud">Cloud</a></li> </ul> <div class="subnav__content" data-id="12234"> <div class="heading__container actions"> <div class="actions__left"> <h3 class="heading section__heading">A la une dans DevOps</h3> </div> </div> <ul data-size="large" data-horizontal="true" data-tax="" taxonomy="articles" class="cards no-style"> <li> <div class="card__content"> <div class="card__data"> <h4 class="card__title"> <a href="/fr/articles/devops-governance-developer-velocity">Pourquoi La Gouvernance DevOps Est Cruciale Pour Permettre La Vélocité Des Développeurs</a> </h4> <p class="card__excerpt">L'environnement d'application doit être géré de manière centralisée par l'équipe DevOps. Cela leur permet de mieux suivre les modifications et les changements qui seraient ensuite rapides et transpare...</p> <div class="card__footer"></div> </div> <a href="/fr/articles/devops-governance-developer-velocity" class="card__header"> <img loading="lazy" alt="Pourquoi La Gouvernance DevOps Est Cruciale Pour Permettre La Vélocité Des Développeurs" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/devops-governance-developer-velocity/fr/smallimage/logo-1658737978607.jpg" class="card__image"/> </a> </div> </li> </ul> <a href="/fr/devops/" class="button__more button button__large button__arrow arrow__right">Tout voir dans devops</a> </div> </div> </div> </nav> </div> <div> <h3 class="widget__heading">Liens utiles</h3> <ul class="no-style header__nav"> <li> <a href="/fr/about-infoq" title="A propos d'InfoQ"> A propos d'InfoQ </a> </li> <li> <a href="/fr/infoq-editors" title="Editeurs InfoQ"> Editeurs InfoQ </a> </li> <li> <a href="/fr/write-for-infoq" title="Contribuez"> Contribuez </a> </li> <li> <a href="/fr/about-c4media" title="A propos de C4 Media"> A propos de C4 Media </a> </li> <li> <a rel="noreferrer noopener" href="https://c4media.com/diversity" title="Diversity" target="_blank">Diversity</a> </li> </ul> </div> <div> <h3 class="widget__heading">Sélectionner votre région</h3> <ul class="language__switcher no-style"> <li><a href="/" title="InfoQ English">En</a></li> <li><a href="https://www.infoq.cn">中文</a></li> <li><a href="/jp/">日本</a></li> <li class="active"><a href="#" onclick="return false;">Fr</a></li> </ul> </div> </div> </div> <div data-nosnippet class="actions header__bottom header__bottom__events"> <div class="actions__left"> <div class="header__events-all"> <a href="https://qconlondon.com/?utm_source=infoq&utm_medium=referral&utm_campaign=homepageheader_qlondon25" rel="nofollow" target="_blank" class="header__event-slot"> <picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvbG9uZG9uLXRvcC11cGRhdGVkMi5qcGciLCJlZGl0cyI6IHsid2VicCI6IHsgInF1YWxpdHkiOjgwfX19" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvbG9uZG9uLXRvcC11cGRhdGVkMi5qcGciLCJlZGl0cyI6IHsianBlZyI6IHsgInF1YWxpdHkiOjgwfX19" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvbG9uZG9uLXRvcC11cGRhdGVkMi5qcGciLCJlZGl0cyI6IHsianBlZyI6IHsgInF1YWxpdHkiOjgwfX19" loading="lazy" width="40px" height="40px" alt="QCon London - image"></picture> <div> <span>QCon London</span> <p>Discover emerging trends, insights, and real-world best practices in software development & tech leadership. Join now.</p> </div> </a> <a href="https://devsummit.infoq.com/conference/boston2025?utm_source=infoq&utm_medium=referral&utm_campaign=homepageheader_idsboston25" rel="nofollow" target="_blank" class="header__event-slot"> <picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvSW5mb1FEZXZTdW1taXQtdG9wLmpwZyIsImVkaXRzIjogeyJ3ZWJwIjogeyAicXVhbGl0eSI6ODB9fX0=" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvSW5mb1FEZXZTdW1taXQtdG9wLmpwZyIsImVkaXRzIjogeyJqcGVnIjogeyAicXVhbGl0eSI6ODB9fX0=" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvSW5mb1FEZXZTdW1taXQtdG9wLmpwZyIsImVkaXRzIjogeyJqcGVnIjogeyAicXVhbGl0eSI6ODB9fX0=" loading="lazy" width="40px" height="40px" alt="InfoQ Dev Summit Boston - image"></picture> <div> <span>InfoQ Dev Summit Boston</span> <p>Learn how senior software developers are solving the challenges you face. Register now with early bird tickets.</p> </div> </a> <a href="https://devsummit.infoq.com/conference/munich2025?utm_source=infoq&utm_medium=referral&utm_campaign=homepageheader_idsmunich25" rel="nofollow" target="_blank" class="header__event-slot"> <picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvSURTLU11bmljaC10b3AuanBnIiwiZWRpdHMiOiB7IndlYnAiOiB7ICJxdWFsaXR5Ijo4MH19fQ==" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvSURTLU11bmljaC10b3AuanBnIiwiZWRpdHMiOiB7ImpwZWciOiB7ICJxdWFsaXR5Ijo4MH19fQ==" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvSURTLU11bmljaC10b3AuanBnIiwiZWRpdHMiOiB7ImpwZWciOiB7ICJxdWFsaXR5Ijo4MH19fQ==" loading="lazy" width="40px" height="40px" alt="InfoQ Dev Summit Munich - image"></picture> <div> <span>InfoQ Dev Summit Munich</span> <p>Learn practical solutions to today's most pressing software challenges. Register now with early bird tickets.</p> </div> </a> <a href="https://qconsf.com/?utm_source=infoq&utm_medium=referral&utm_campaign=homepageheader_qsf25" rel="nofollow" target="_blank" class="header__event-slot"> <picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvU0YtdG9wLmpwZyIsImVkaXRzIjogeyJ3ZWJwIjogeyAicXVhbGl0eSI6ODB9fX0=" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvU0YtdG9wLmpwZyIsImVkaXRzIjogeyJqcGVnIjogeyAicXVhbGl0eSI6ODB9fX0=" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvaGVhZGVyL2NvbmZlcmVuY2VzLzIwMjUvU0YtdG9wLmpwZyIsImVkaXRzIjogeyJqcGVnIjogeyAicXVhbGl0eSI6ODB9fX0=" loading="lazy" width="40px" height="40px" alt="QCon San Francisco - image"></picture> <div> <span>QCon San Francisco</span> <p>Explore insights, real-world best practices and solutions in software development & leadership. Register now.</p> </div> </a> </div> </div> <!----> </div> </div> </div> </header> <!-- ####### CONTENT START ######### --> <main> <section class="container section topics"> <div class="columns container__inner" data-trk-ref="hover_topic_page"> <p class="crumbs"> <span data-nosnippet><a href="/fr" title="Accueil InfoQ">Accueil InfoQ</a></span> <span data-nosnippet class="active">Web API sur InfoQ</span> </p> <div class="actions heading__container heading__actions" data-id="12623" data-trk-ref="topic_page"> <div class="actions__left"> <h1 class="heading heading__rss">Web API</h1> <span class="rss icon icon__rss-feed"> <a href="https://feed.infoq.com/fr/WebAPI/" target="_blank">Flux RSS</a> </span> </div> </div> <!-- add static promotion box on the top of the page,under title,for service mesh topic page --> <!-- add graph and description for trends report topic page (https://www.infoq.com/infoq-trends-report/) --> <div data-col=""> <div class="items"> <div class="actions heading__container"> <div class="actions__left"> <h2 class="heading section__heading heading__rss"> <a href="/fr/WebAPI/news/" > Actualités sur Web API </a> </h2> <span class="rss icon icon__rss-feed"> <a href="https://feed.infoq.com/fr/WebAPI/news/" target="_blank">Flux RSS</a> </span> </div> </div> <div class="items__content"> <div> <ul class="no-style cards" data-cols="3" data-size="large" data-hoverables="true" data-tax="news"> <li data-id="a5bc0ffe-53de-493a-82eb-c155beef6205" data-path="/news/2022/05/quarkus-2-8-0"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/java/" data-id="10518">Java</a> </span> </div> <h4 class="card__title"> <a title="Quarkus 2.8.0 Introduit Une API De Transaction Affinée" href="/fr/news/2022/05/quarkus-2-8-0/">Quarkus 2.8.0 Introduit Une API De Transaction Affinée</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Johan-Janssen/" data-id="author-Johan-Janssen">Johan Janssen</a> </span> </div> <span class="card__date date">le<span> 11 mai 2022</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="a9a55e43-9154-4671-a241-16eb6aea797a" data-path="/news/2022/04/api-architecture-qcon-plus"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/architecture-design/" data-id="12692">Architecture & Design</a> </span> </div> <h4 class="card__title"> <a title="Retour Sur Le Débat Tenu Lors De La QCon Plus Sur L’Architecture API" href="/fr/news/2022/04/api-architecture-qcon-plus/">Retour Sur Le Débat Tenu Lors De La QCon Plus Sur L’Architecture API</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Thomas-Betts/" data-id="author-Thomas-Betts">Thomas Betts</a> </span> </div> <span class="card__date date">le<span> 19 avr. 2022</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="e66a1924-25ec-41dd-992d-055d1ef324cd" data-path="/news/2020/04/whats-new-in-microprofile-3-3"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/java/" data-id="10518">Java</a> </span> </div> <h4 class="card__title"> <a title="Nouveautés De MicroProfile 3.3" href="/fr/news/2020/04/whats-new-in-microprofile-3-3/">Nouveautés De MicroProfile 3.3</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Michael-Redlich/" data-id="author-Michael-Redlich">Michael Redlich</a> </span> </div> <span class="card__date date">le<span> 02 avr. 2020</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="a4b4045c-b54c-4fed-ab5f-3134f3d20c66" data-path="/news/2019/11/microsoft-edge-chromium"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/development/" data-id="12691">Développement</a> </span> </div> <h4 class="card__title"> <a title="Microsoft Edge 79 Va Utiliser Le Moteur Pour Navigateur Chromium" href="/fr/news/2019/11/microsoft-edge-chromium/">Microsoft Edge 79 Va Utiliser Le Moteur Pour Navigateur Chromium</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Guy-Nesher/" data-id="author-Guy-Nesher">Guy Nesher</a> </span> </div> <span class="card__date date">le<span> 26 nov. 2019</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="69742904-4d67-435d-8660-a4546a0c8e7d" data-path="/news/2017/10/paypal-api-guide"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Modèle et Guide Stylistique de l'API PayPal" href="/fr/news/2017/10/paypal-api-guide/">Modèle et Guide Stylistique de l'API PayPal</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 03 oct. 2017</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="4ef36232-3a8a-4921-a9e2-298e192b92d9" data-path="/news/2017/06/google-drops-prediction-api"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Google remplace l'API Cloud Prediction avec Cloud Machine Learning Engine" href="/fr/news/2017/06/google-drops-prediction-api/">Google remplace l'API Cloud Prediction avec Cloud Machine Learning Engine</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Shelby-Switzer/" data-id="author-Shelby-Switzer">Shelby Switzer</a> </span> </div> <span class="card__date date">le<span> 27 juin 2017</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="ef6ab253-7766-4b66-be6f-a87728776921" data-path="/news/2017/05/ibm-microgateway-opensource"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="IBM rend sa micro-passerelle d'API open source" href="/fr/news/2017/05/ibm-microgateway-opensource/">IBM rend sa micro-passerelle d'API open source</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Margot-Krouwer/" data-id="author-Margot-Krouwer">Margot Krouwer</a> </span> </div> <span class="card__date date">le<span> 09 mai 2017</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="3d4d20da-d0ca-49a3-938b-4b1fa8f5550a" data-path="/news/2017/04/w3c-web-of-things"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Le groupe Web des Objets du W3C commence son travail" href="/fr/news/2017/04/w3c-web-of-things/">Le groupe Web des Objets du W3C commence son travail</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Benjamin-Young/" data-id="author-Benjamin-Young">Benjamin Young</a> </span> </div> <span class="card__date date">le<span> 07 avr. 2017</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="cb6a9d2e-6a9f-4efd-94c6-08227886f0de" data-path="/news/2017/03/google-api-design-guide"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Google rend public son Guide de Conception d'API" href="/fr/news/2017/03/google-api-design-guide/">Google rend public son Guide de Conception d'API</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 17 mars 2017</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="ec026d3d-5a11-47a8-8072-370fabe505d2" data-path="/news/2016/10/w3c-web-payments-working-draft"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Publication des premiers brouillons de la spécification W3C Web Payments HTTP" href="/fr/news/2016/10/w3c-web-payments-working-draft/">Publication des premiers brouillons de la spécification W3C Web Payments HTTP</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Jeevak-Kasarkod/" data-id="author-Jeevak-Kasarkod">Jeevak Kasarkod</a> </span> </div> <span class="card__date date">le<span> 10 oct. 2016</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="47e27192-527c-4b24-881d-c8cd72e6b4c2" data-path="/news/2016/10/box-security-governance"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Box lance quatre nouvelles APIs de sécurité et de gouvernance" href="/fr/news/2016/10/box-security-governance/">Box lance quatre nouvelles APIs de sécurité et de gouvernance</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Margot-Krouwer/" data-id="author-Margot-Krouwer">Margot Krouwer</a> </span> </div> <span class="card__date date">le<span> 07 oct. 2016</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="ce4b71c3-e512-443c-aa3e-23b38ed74187" data-path="/news/2016/06/apisguru-joins-api-indexes"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="APIs.guru rejoint la liste grandissante des Index d'API" href="/fr/news/2016/06/apisguru-joins-api-indexes/">APIs.guru rejoint la liste grandissante des Index d'API</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Benjamin-Young/" data-id="author-Benjamin-Young">Benjamin Young</a> </span> </div> <span class="card__date date">le<span> 20 juin 2016</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="cdd24cd9-ce5e-40d8-a28e-21200d0107a5" data-path="/news/2015/11/raml-1-workbench"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Le groupe de travail RAML annonce RAML 1.0 et API Workbench" href="/fr/news/2015/11/raml-1-workbench/">Le groupe de travail RAML annonce RAML 1.0 et API Workbench</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 06 nov. 2015</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="9fe33def-8618-4768-8eac-237ba2a00fa9" data-path="/news/2015/10/ionide-fsharp-ide"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Ionide : l'IDE atom f# écrit en f#" href="/fr/news/2015/10/ionide-fsharp-ide/">Ionide : l'IDE atom f# écrit en f#</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Sergio-De-Simone/" data-id="author-Sergio-De-Simone">Sergio De Simone</a> </span> </div> <span class="card__date date">le<span> 14 oct. 2015</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="f98180ad-9f95-4de3-9793-3ebeb2403071" data-path="/news/2015/08/redfish"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Redfish : une Nouvelle API pour la Gestion des Serveurs" href="/fr/news/2015/08/redfish/">Redfish : une Nouvelle API pour la Gestion des Serveurs</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 11 août 2015</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="935a9df2-e89c-4e14-b472-fac3059ab843" data-path="/news/2014/12/restlet-2.3"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Sortie de Restlet 2.3, avec le Support de Java 7, SPDY et CORS" href="/fr/news/2014/12/restlet-2.3">Sortie de Restlet 2.3, avec le Support de Java 7, SPDY et CORS</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Matt-Raible/" data-id="author-Matt-Raible">Matt Raible</a> </span> </div> <span class="card__date date">le<span> 31 déc. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="55a3b0e9-94cf-4129-9c4a-6e46ec6dc6e1" data-path="/news/2014/11/heroku-http-design-guide"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Guide de conception d'API HTTP chez Heroku" href="/fr/news/2014/11/heroku-http-design-guide/">Guide de conception d'API HTTP chez Heroku</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 17 nov. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="91a4bc26-941b-4c86-84ba-b2bfef05c15b" data-path="/news/2014/10/apache-camel-2.14"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Apache Camel 2.14 : Java 8, Spring 4, REST DSL et Metrics" href="/fr/news/2014/10/apache-camel-2.14">Apache Camel 2.14 : Java 8, Spring 4, REST DSL et Metrics</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Matt-Raible/" data-id="author-Matt-Raible">Matt Raible</a> </span> </div> <span class="card__date date">le<span> 29 oct. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="1cfd55f4-f4c9-4460-9d76-c33a498094c1" data-path="/news/2014/07/rest-haskell"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="rest : un framework REST open-source pour Haskell" href="/fr/news/2014/07/rest-haskell/">rest : un framework REST open-source pour Haskell</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Roopesh-Shenoy/" data-id="author-Roopesh-Shenoy">Roopesh Shenoy</a> </span> </div> <span class="card__date date">le<span> 23 juil. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="f3d6dfbc-b9b3-4465-ab02-5fd3e36c584d" data-path="/news/2014/03/marvel-comics-api"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Disposer des Vengeurs avec l'API des BD Marvel" href="/fr/news/2014/03/marvel-comics-api/">Disposer des Vengeurs avec l'API des BD Marvel</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 04 mars 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="b9136d18-40ad-4f71-8ca5-83507ca97fe1" data-path="/news/2014/01/Jersey-2-5-released"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Livraison du framework Jersey 2.5" href="/fr/news/2014/01/Jersey-2-5-released/">Livraison du framework Jersey 2.5</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Jan-Stenberg/" data-id="author-Jan-Stenberg">Jan Stenberg</a> </span> </div> <span class="card__date date">le<span> 17 janv. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="e8f6afd6-3ac7-4815-8d09-cdffda88f3ba" data-path="/news/2006/01/rest-alternatives"> <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="REST a-t-il besoin de remplaçants ?" href="/fr/news/2006/01/rest-alternatives/">REST a-t-il besoin de remplaçants ?</a></h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Mark-Little/" data-id="author-Mark-Little">Mark Little</a> </span> </div> <span class="card__date date">le<span> 02 janv. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> </ul> <a href="/fr/WebAPI/news/" class="button button__arrow arrow__right button__more button__has-transition"> PLUS D'ACTUALITÉS </a> </div> </div> </div> <div class="items"> <div class="actions heading__container"> <div class="actions__left"> <h2 class="heading section__heading heading__rss"> <a href="/fr/WebAPI/articles/" > Articles sur Web API </a> </h2> <span class="rss icon icon__rss-feed"> <a href="https://feed.infoq.com/fr/WebAPI/articles/" target="_blank">Flux RSS</a> </span> </div> </div> <div class="items__content"> <div> <ul class="no-style cards boxes" data-horizontal="true" data-size="large" data-tax="articles" data-hoverables="true" data-cols="3"> <li data-id="346b2371-e093-43ff-a9d7-c43cb72b8f52" data-path="/articles/GraphQL-ultimate-guide"> <div class="card__content"> <a href="/fr/articles/GraphQL-ultimate-guide/" class="card__header"> <img loading="lazy" alt="Guide De Référence GraphQL : Création D'API Flexibles Et Compréhensibles" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/GraphQL-ultimate-guide/fr/smallimage/GraphQL-Pillar-Page-small-1615289418898.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/architecture-design/" data-id="12692">Architecture & Design</a> </span> </div> <h4 class="card__title"> <a title="Guide De Référence GraphQL : Création D'API Flexibles Et Compréhensibles" href="/fr/articles/GraphQL-ultimate-guide/"> Guide De Référence GraphQL : Création D'API Flexibles Et Compréhensibles </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Daniel-Bryant/" data-id="author-Daniel-Bryant">Daniel Bryant</a> </span> </div> <span class="card__date date">le<span> 05 juil. 2021</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="d8107951-009f-4021-8a30-eaaaaf52611d" data-path="/articles/jakarta-security-rest-partie4"> <div class="card__content"> <a href="/fr/articles/jakarta-security-rest-partie4/" class="card__header"> <img loading="lazy" alt="Jakarta Security Et REST Dans Le Cloud Partie 4 : Combinaison De JWT Avec OAuth 2" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/jakarta-security-rest-partie4/fr/smallimage/jakarta-security-100-1597053482279.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/java/" data-id="10518">Java</a> </span> </div> <h4 class="card__title"> <a title="Jakarta Security Et REST Dans Le Cloud Partie 4 : Combinaison De JWT Avec OAuth 2" href="/fr/articles/jakarta-security-rest-partie4/"> Jakarta Security Et REST Dans Le Cloud Partie 4 : Combinaison De JWT Avec OAuth 2 </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Otavio-Santana/" data-id="author-Otavio-Santana">Otavio Santana</a> </span> </div> <span class="card__date date">le<span> 14 août 2020</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="6ab75305-0669-4542-8988-b7e896d5251b" data-path="/articles/jakarta-security-rest-partie3"> <div class="card__content"> <a href="/fr/articles/jakarta-security-rest-partie3/" class="card__header"> <img loading="lazy" alt="Jakarta Security Et REST Dans Le Cloud Partie 3 : Connaître OAuth2" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/jakarta-security-rest-partie3/fr/smallimage/jakarta-security-100-1596448315071.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/java/" data-id="10518">Java</a> </span> </div> <h4 class="card__title"> <a title="Jakarta Security Et REST Dans Le Cloud Partie 3 : Connaître OAuth2" href="/fr/articles/jakarta-security-rest-partie3/"> Jakarta Security Et REST Dans Le Cloud Partie 3 : Connaître OAuth2 </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Otavio-Santana/" data-id="author-Otavio-Santana">Otavio Santana</a> </span> </div> <span class="card__date date">le<span> 04 août 2020</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="ff0826b8-4bab-4a48-900d-48c5c9f0df22" data-path="/articles/jakarta-security-rest-partie2"> <div class="card__content"> <a href="/fr/articles/jakarta-security-rest-partie2/" class="card__header"> <img loading="lazy" alt="Jakarta Security Et REST Dans Le Cloud Partie 2 : Apprendre Les Bases" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/jakarta-security-rest-partie2/fr/smallimage/jakarta-security-100-1594640013776.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/java/" data-id="10518">Java</a> </span> </div> <h4 class="card__title"> <a title="Jakarta Security Et REST Dans Le Cloud Partie 2 : Apprendre Les Bases" href="/fr/articles/jakarta-security-rest-partie2/"> Jakarta Security Et REST Dans Le Cloud Partie 2 : Apprendre Les Bases </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Otavio-Santana/" data-id="author-Otavio-Santana">Otavio Santana</a> </span> </div> <span class="card__date date">le<span> 13 juil. 2020</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="d9616939-6f3a-4f4d-87df-356ab5779604" data-path="/articles/jakarta-security-rest-partie1"> <div class="card__content"> <a href="/fr/articles/jakarta-security-rest-partie1/" class="card__header"> <img loading="lazy" alt="Jakarta Security Et REST Dans Le Cloud Partie 1 : Hello World De La Sécurité" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/jakarta-security-rest-partie1/fr/smallimage/jakarta-security-100-1593778603621.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/java/" data-id="10518">Java</a> </span> </div> <h4 class="card__title"> <a title="Jakarta Security Et REST Dans Le Cloud Partie 1 : Hello World De La Sécurité" href="/fr/articles/jakarta-security-rest-partie1/"> Jakarta Security Et REST Dans Le Cloud Partie 1 : Hello World De La Sécurité </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Otavio-Santana/" data-id="author-Otavio-Santana">Otavio Santana</a> </span> </div> <span class="card__date date">le<span> 03 juil. 2020</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="ec850053-fbcd-45e0-acf0-7589b88453c8" data-path="/articles/overcoming-restlessness"> <div class="card__content"> <a href="/fr/articles/overcoming-restlessness/" class="card__header"> <img loading="lazy" alt="Overcoming RESTlessness" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/overcoming-restlessness/fr/smallimage/overcoming-restlessness-s-1548835990305.jpeg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="/fr/architecture-design/" data-id="12692">Architecture & Design</a> </span> </div> <h4 class="card__title"> <a title="Overcoming RESTlessness" href="/fr/articles/overcoming-restlessness/"> Overcoming RESTlessness </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Matt-McLarty/" data-id="author-Matt-McLarty">Matt McLarty</a> </span> </div> <span class="card__date date">le<span> 15 avr. 2019</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="eda8bb21-abce-414d-96ab-113ee1855218" data-path="/articles/vertx-kubernetes-coursier-prive"> <div class="card__content"> <a href="/fr/articles/vertx-kubernetes-coursier-prive/" class="card__header"> <img loading="lazy" alt="Startup Architecture : Vert.x et Kubernetes chez Coursier Privé" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/vertx-kubernetes-coursier-prive/fr/smallimage/21_d3cvM_400x400.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Startup Architecture : Vert.x et Kubernetes chez Coursier Privé" href="/fr/articles/vertx-kubernetes-coursier-prive/"> Startup Architecture : Vert.x et Kubernetes chez Coursier Privé </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Pierre-Queinnec/" data-id="author-Pierre-Queinnec">Pierre Queinnec</a> </span> </div> <span class="card__date date">le<span> 21 nov. 2016</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="6846d11d-2bca-4d6e-a273-038addbbe4ac" data-path="/articles/cours-java-jee-azure-paumard-pertus"> <div class="card__content"> <a href="/fr/articles/cours-java-jee-azure-paumard-pertus/" class="card__header"> <img loading="lazy" alt="Cours JEE (CDI, JPA, EJB, REST avec JAX-RS, JSF) sur Azure, l'interview" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/cours-java-jee-azure-paumard-pertus/fr/smallimage/java_ee_logo_vert_v2.png" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Cours JEE (CDI, JPA, EJB, REST avec JAX-RS, JSF) sur Azure, l'interview" href="/fr/articles/cours-java-jee-azure-paumard-pertus/"> Cours JEE (CDI, JPA, EJB, REST avec JAX-RS, JSF) sur Azure, l'interview </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Pierre-Queinnec/" data-id="author-Pierre-Queinnec">Pierre Queinnec</a> </span> </div> <span class="card__date date">le<span> 16 déc. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="e6603831-adef-4226-bbed-6a7224d873db" data-path="/articles/web-api-rest"> <div class="card__content"> <a href="/fr/articles/web-api-rest/" class="card__header"> <img loading="lazy" alt="Pourquoi certaines Web APIs ne sont-elles pas RESTful et ce qui peut être fait à ce sujet" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/web-api-rest/fr/smallimage/image_API_REST2.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Pourquoi certaines Web APIs ne sont-elles pas RESTful et ce qui peut être fait à ce sujet" href="/fr/articles/web-api-rest/"> Pourquoi certaines Web APIs ne sont-elles pas RESTful et ce qui peut être fait à ce sujet </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Abel-Avram/" data-id="author-Abel-Avram">Abel Avram</a> </span> </div> <span class="card__date date">le<span> 02 déc. 2014</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="5f5bde99-2c77-4ba9-9579-a319803b1e35" data-path="/articles/jsc-xavier-hanin"> <div class="card__content"> <a href="/fr/articles/jsc-xavier-hanin/" class="card__header"> <img loading="lazy" alt="Interview RESTX avec Xavier Hanin" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/jsc-xavier-hanin/fr/smallimage/imgRESTX.png" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Interview RESTX avec Xavier Hanin" href="/fr/articles/jsc-xavier-hanin/"> Interview RESTX avec Xavier Hanin </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Simon-Basl%C3%A9/" data-id="author-Simon-Baslé">Simon Baslé</a> </span> </div> <span class="card__date date">le<span> 15 nov. 2013</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="04b9df2f-66b9-4d28-8e11-229c0231ce6a" data-path="/articles/rest-soap-when-to-use-each"> <div class="card__content"> <a href="/fr/articles/rest-soap-when-to-use-each/" class="card__header"> <img loading="lazy" alt="REST et SOAP: Quand les utiliser ?" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/rest-soap-when-to-use-each/fr/smallimage/rest_soap.jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="REST et SOAP: Quand les utiliser ?" href="/fr/articles/rest-soap-when-to-use-each/"> REST et SOAP: Quand les utiliser ? </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Mike-Rozlog/" data-id="author-Mike-Rozlog">Mike Rozlog</a> </span> </div> <span class="card__date date">le<span> 01 avr. 2010</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> <li data-id="6db76e29-b72b-4928-a197-05cffa6ccd48" data-path="/articles/rest-introduction"> <div class="card__content"> <a href="/fr/articles/rest-introduction/" class="card__header"> <img loading="lazy" alt="Introduction aux principes REST" src="https://imgopt.infoq.com/fit-in/100x100/filters:quality(80)/articles/rest-introduction/fr/smallimage/image_leaning(2).jpg" class="card__image"> </a> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Introduction aux principes REST" href="/fr/articles/rest-introduction/"> Introduction aux principes REST </a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Stefan-Tilkov/" data-id="author-Stefan-Tilkov">Stefan Tilkov</a> </span> </div> <span class="card__date date">le<span> 12 oct. 2007</span></span> </div> <button aria-label="J'aime" size="small" class="like button button__unstyled icon__gray button__icon icon icon__like">J'aime</button> </div> </div> </div> </li> </ul> </div> </div> </div> <div class="items"> <div class="actions heading__container"> <div class="actions__left"> <h2 class="heading section__heading heading__rss"> <a href="/fr/WebAPI/presentations/" > Présentations sur Web API </a> </h2> <span class="rss icon icon__rss-feed"> <a href="https://feed.infoq.com/fr/WebAPI/presentations/" target="_blank">Flux RSS</a> </span> </div> </div> <div class="items__content"> <div> <ul class="no-style cards boxes" data-cols="4" data-size="large" data-hoverables="true" data-tax="presentations"> <li data-id="493065b0-08d7-4dd5-8a94-10bfa93f1d4a" data-path="/presentations/codeurs-en-seine-arnaud-kervern" > <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="Construire une API flexible, composable et extensible" href="/fr/presentations/codeurs-en-seine-arnaud-kervern/">Construire une API flexible, composable et extensible</a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Arnaud-Kervern/" data-id="author-Arnaud-Kervern">Arnaud Kervern</a> </span> </div> <span class="card__date date">le<span> 27 mars 2017</span></span> </div> <button class="icon button button__icon like button__unstyled icon__gray icon__like" aria-label="J'aime" size="small">J'aime</button> </div> </div> <a href="/fr/presentations/codeurs-en-seine-arnaud-kervern/" class="card__header"> <img loading="lazy" src="https://imgopt.infoq.com/fit-in/297x220/filters:quality(80)/presentations/codeurs-en-seine-arnaud-kervern/fr/mediumimage/270x200.jpg" alt="Construire une API flexible, composable et extensible" class="card__image" /> <div class="card__meta"> <div class="card__icon">Icon</div> <div class="card__length"> 41:51 </div> </div> </a> </div> </li> <li data-id="5f28b018-658d-432f-9e70-6bc716adce45" data-path="/presentations/bow-virginie-bardales-rest-world" > <div class="card__content"> <div class="card__data"> <div class="card__topics topics"> <span> <a href="http://www.infoq.com/fr/webapi/" data-id=""></a> </span> </div> <h4 class="card__title"> <a title="REST World" href="/fr/presentations/bow-virginie-bardales-rest-world/">REST World</a> </h4> <div class="card__footer"> <div class="card__details"> <div class="card__authors authors"> <span> <a href="/fr/profile/Virginie-Bardales/" data-id="author-Virginie-Bardales">Virginie Bardales</a> </span> </div> <span class="card__date date">le<span> 18 nov. 2015</span></span> </div> <button class="icon button button__icon like button__unstyled icon__gray icon__like" aria-label="J'aime" size="small">J'aime</button> </div> </div> <a href="/fr/presentations/bow-virginie-bardales-rest-world/" class="card__header"> <img loading="lazy" src="https://imgopt.infoq.com/fit-in/297x220/filters:quality(80)/presentations/bow-virginie-bardales-rest-world/fr/mediumimage/virginie-bardales-270x200.jpg" alt="REST World" class="card__image" /> <div class="card__meta"> <div class="card__icon">Icon</div> <div class="card__length"> 29:56 </div> </div> </a> </div> </li> </ul> </div> </div> </div> </div> </div> </section> </main> <footer class="footer "> <section data-nosnippet class="section container prsps__section white center"> <div class="container__inner"> <p>Rien ne serait possible sans le soutien et la confiance de nos Sponsors:</p> <div class="prsps__list"> <a href="https://www.oxiane.com/" target="_blank"> <img loading="lazy" src="/styles/static/images/oxiane_logo_bleu_150x40.png" alt="Jenji"/> </a> </div> </div> </section> <section data-nosnippet class="section container"> <div class="container__inner"> <ul data-cols="5" class="no-style columns boxes topic__boxes"> <li class="development"> <div class="box__header"> <a class="t_all_footer_more-boxes-header" href="/fr/development/">Développement</a> </div> <div class="box__content"> <ul class="no-style box__list small"> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/07/Asahi-linux-m2-support/" title="La Nouvelle Version D'Asahi Linux Prend En Charge Les Processeurs Apple M1 Ultra Et M2">La Nouvelle Version D'Asahi Linux Prend En Charge Les Processeurs Apple M1 Ultra Et M2</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/06/PostgreSQL-14-Breaking-Change/" title="PostgreSQL 14 Casse Les Pilotes .NET Et Java Pour PostgreSQL">PostgreSQL 14 Casse Les Pilotes .NET Et Java Pour PostgreSQL</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/03/docker-desktop-macos-virtiofs/" title="Docker Desktop 4.6 Pour Mac Am&eacute;liore Les Performances De Partage">Docker Desktop 4.6 Pour Mac Améliore Les Performances De Partage</a></h5> </li> </ul> </div> </li> <li class="architecture-design"> <div class="box__header"> <a class="t_all_footer_more-boxes-header" href="/fr/architecture-design/">Architecture & Design</a> </div> <div class="box__content"> <ul class="no-style box__list small"> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/10/design-patterns-serverless/" title="Comment Eviter Le Verrouillage Des Fournisseurs Sans Serveurs Avec Design Patterns ?">Comment Eviter Le Verrouillage Des Fournisseurs Sans Serveurs Avec Design Patterns ?</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/articles/ballerina-data-functional-programming/" title="Manipulation De Donn&eacute;es Avec Programmation Fonctionnelle Et Requ&ecirc;tes Dans Ballerina">Manipulation De Données Avec Programmation Fonctionnelle Et Requêtes Dans Ballerina</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/articles/ballerina-data-oriented-language/" title="Ballerina : Un Langage De Programmation Orient&eacute; Donn&eacute;es">Ballerina : Un Langage De Programmation Orienté Données</a></h5> </li> </ul> </div> </li> <li class="culture-methods"> <div class="box__header"> <a class="t_all_footer_more-boxes-header" href="/fr/culture-methods/">Culture & Méthodes</a> </div> <div class="box__content"> <ul class="no-style box__list small"> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/12/financial-debt-impossible/" title="La Dette Technique Est Quantifiable En Tant Que Dette Financi&egrave;re : Impossible Pour Les D&eacute;veloppeurs">La Dette Technique Est Quantifiable En Tant Que Dette Financière : Impossible Pour Les Développeurs</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/11/performance-testing-trends/" title="Les Tests De Performance Doivent S'Appuyer Sur Les Tendances">Les Tests De Performance Doivent S'Appuyer Sur Les Tendances</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/articles/individual-team-processes/" title="Les Processus De Tests Individuels Ne Peuvent Convenir A Tout Le Monde.">Les Processus De Tests Individuels Ne Peuvent Convenir A Tout Le Monde.</a></h5> </li> </ul> </div> </li> <li class="ai-ml-data-eng"> <div class="box__header"> <a class="t_all_footer_more-boxes-header" href="/fr/ai-ml-data-eng/">Data Science</a> </div> <div class="box__content"> <ul class="no-style box__list small"> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/10/grab-data-platform/" title="Grab A Partag&eacute; Son Experience Sur La Conception De Plate-formes De Donn&eacute;es Distribu&eacute;es">Grab A Partagé Son Experience Sur La Conception De Plate-formes De Données Distribuées</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2021/01/microsoft-vision-language-vinvl/" title="Microsoft Research D&eacute;veloppe un Nouveau Syst&egrave;me de Language-Vision : VinVL">Microsoft Research Développe un Nouveau Système de Language-Vision : VinVL</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/articles/uber-eats-time-predictions/" title="Les Pr&eacute;dictions De Temps Chez Uber Eats">Les Prédictions De Temps Chez Uber Eats</a></h5> </li> </ul> </div> </li> <li class="devops"> <div class="box__header"> <a class="t_all_footer_more-boxes-header" href="/fr/devops/">DevOps</a> </div> <div class="box__content"> <ul class="no-style box__list small"> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/10/Uber-breach-mfa-fatigue/" title="Les Facteurs Cl&eacute;s De La &quot;MFA Fatigue&quot; Dont A Ete Victime Uber">Les Facteurs Clés De La "MFA Fatigue" Dont A Ete Victime Uber</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/news/2022/09/slack-remote-development-env/" title="Adoption D'Environnements De D&eacute;veloppement &Agrave; Distance Chez Slack">Adoption D'Environnements De Développement À Distance Chez Slack</a></h5> </li> <li> <h5><a class="t_all_footer_more-boxes-item" href="/fr/articles/devops-governance-developer-velocity/" title="Pourquoi La Gouvernance DevOps Est Cruciale Pour Permettre La V&eacute;locit&eacute; Des D&eacute;veloppeurs">Pourquoi La Gouvernance DevOps Est Cruciale Pour Permettre La Vélocité Des Développeurs</a></h5> </li> </ul> </div> </li> </ul> </div> </section> <section data-nosnippet class="container section section__newsletter"> <div class="columns container__inner"> <div class="newsletter" data-col="1/2" > <h2 class="heading"> <strong>InfoQ</strong> Newsletter hebdomadaire </h2> <p class="intro">Un résumé du contenu de la semaine dernière sur InfoQ envoyé tous les jeudis. Rejoignez une communauté de plus de 250 000 développeurs seniors. <a target="_blank" href="https://assets.infoq.com/newsletter/regular/fr/newsletter_sample/newsletter_sample.html">Voir un exemple</a> </p> <ul class="newsletter__features"> <li>Obtenez un aperçu rapide du contenu publié sur une variété de technologies innovantes et précoces</li> <li>Apprenez ce que vous ne savez pas et que vous devriez connaître</li> <li>Restez à jour avec les dernières informations sur les sujets qui vous intéressent</li> </ul> <div class="newsletter__subscribe"> <form class="form gdpr" name="footerNewsletterForm" id="footerNewsletterForm" action="#" onsubmit="footerNewsletter.saveSubscription(); return false;"> <div class="field newsletter__mail input__text input__no-label input__medium email"> <label for="email-newsletter-infoq" class="label field__label">Votre adresse email ici</label> <input id="email-newsletter-infoq" name="footerNewsletterEmail" placeholder="Votre adresse email ici" class="input field__input" type="email"/> <input type="text" name="emailH" id="input_email_h" aria-required="false" style="display:none !important" tabindex="-1" autocomplete="off"/> <input type="hidden" id="fnt" name="fnt" value="NQsIuqslaUg7WuNB"/> <input type="hidden" id="footerNewsletterType" name="footerNewsletterType" value="regular"/> <input type="hidden" id="cmpi" name="cmpi" value="2"/> </div> <div class="hidden"> <span class="input__select field country"> <label for="input-simple-newsletter-country" class="label field__label">Sélectionnez votre pays</label> <select id="input-simple-newsletter-country" class="select field__input"> <option value="" class="select__option">Sélectionner</option> </select> <p class="input__message field__desc"></p> </span> <span class="input__checkbox field hidden"> <input type="checkbox" id="gdpr-consent-simple-nl"> <label for="gdpr-consent-simple-nl" class="label"><span>Je consens à ce que InfoQ.com traite mes données comme expliqué dans ces <a href="https://www.infoq.com/fr/privacy-notice" target=“_blank”>conditions de confidentialité</a>.</span></label> </span> </div> <input type="submit" role="button" value="S'inscrire" class="button button__medium button__red" onclick="return footerNewsletter.validateEmail('Adresse email invalide');"/> </form> <p class="meta"> <a href="/fr/privacy-notice/" target="_blank">Nous protégeons votre vie privée.</a> </p> <span class="success" style="display:none;" id="footerNewsletterMessage"></span> </div> <script type="text/javascript"> var footerNewsletter = new Newsletter('Votre adresse email ici', 'email-newsletter-infoq', 'footerNewsletterType','footerNewsletterMessage', 'fnt', 'input_email_h', 'input-simple-newsletter-country', 'cmpi','footer_except_homepage'); </script> </div> <div data-col="1/2" data-bg="qconLondon" class="event__container"> <a href="https://qconlondon.com/?utm_source=infoq&utm_medium=referral&utm_campaign=largefooterad_qlondon25" target="_blank" class="qconplus__events-slider"> <div> <div class="logo-london"></div> <br> </div> <p class="intro"><ul><li><strong>Conference: April 7-9, 2025</strong></li><li><strong>Certification workshop: April 10, 2025</strong></li></ul> QCon London International Software Development Conference returns on April 7-10, 2025. Level-up on 15 major software and leadership topics including; The Tech of FinTech, AI & ML in Software Engineering, Modern Data Architectures, Engineering Productivity, The Path to Senior Engineering Leadership, Supply Chain Security, and more.</p> <p class="intro">Learn the emerging trends. Explore the use cases. Implement the best practices.<br><strong class="button button__green cta__button">Register Now</strong></p> </a> </div> </div> </section> <section data-nosnippet class="section container footer__subfooter align__left"> <div class="container__inner columns"> <div data-col="1/4" class="columns footer__links-wrap"> <div class="footer__links"> <a href="/fr/" class="nuxt-link-exact-active active" title="Accueil">Accueil</a> <a href="/fr/reginit.action" class="emphasis" title="S'inscrire">S'inscrire</a> <button aria-label="Connexion" class="login" data-ref="mainLogin">Connexion</button> <a rel="noreferrer noopener" href="http://qconferences.com/" target="_blank" title="Conférences QCon">Conférences QCon</a> <a rel="noreferrer noopener" href="https://events.infoq.com/" target="_blank">Events</a> <a href="/fr/write-for-infoq/" title="Contribuez">Contribuez</a> <a href="/fr/infoq-editors/" title="Editeurs InfoQ">Editeurs InfoQ</a> <a href="/fr/about-infoq/" title="A propos d'InfoQ">A propos d'InfoQ</a> <a href="/fr/about-c4media/" title="A propos de C4 Media">A propos de C4 Media</a> <a rel="noreferrer noopener" href="https://c4media.com/diversity" title="Diversity" target="_blank">Diversity</a> </div> </div> <div data-col="1/4" class="events__list"> <h4 class="heading footer__heading">Events</h4> <ul class="qcons__list no-style"> <li><span class="icon event__type conference"></span> <div class="qcon__detail"> <h5 class="heading"> <a rel="noreferrer noopener" href="https://qconlondon.com/?utm_source=infoq&utm_medium=referral&utm_campaign=footer_qlondon25" target="_blank">QCon London</a> </h5> <span class="meta date">APRIL 7-10, 2025</span> </div> </li> <li><span class="icon event__type conference"></span> <div class="qcon__detail"> <h5 class="heading"> <a rel="noreferrer noopener" href="https://devsummit.infoq.com/conference/boston2025?utm_source=infoq&utm_medium=referral&utm_campaign=footer_idsboston25" target="_blank">InfoQ Dev Summit Boston</a> </h5> <span class="meta date">June 9-10, 2025</span> </div> </li> <li><span class="icon event__type conference"></span> <div class="qcon__detail"> <h5 class="heading"> <a rel="noreferrer noopener" href="https://devsummit.infoq.com/conference/munich2025?utm_source=infoq&utm_medium=referral&utm_campaign=footer_idsmunich25" target="_blank">InfoQ Dev Summit Munich</a> </h5> <span class="meta date">October 15-16, 2025</span> </div> </li> <li><span class="icon event__type conference"></span> <div class="qcon__detail"> <h5 class="heading"> <a rel="noreferrer noopener" href="https://qconsf.com/?utm_source=infoq&utm_medium=referral&utm_campaign=footer_qsf25" target="_blank">QCon San Francisco</a> </h5> <span class="meta date">November 17-21, 2025 / In-person</span> </div> </li> <li><span class="icon event__type conference"></span> <div class="qcon__detail"> <h5 class="heading"> <a rel="noreferrer noopener" href="#" target="_self" onclick="return false;">InfoQ Dev Summit New York</a> </h5> <span class="meta date">December, 2025 / In-person</span> </div> </li> </ul> </div> <div data-col="1/4" class="footer__social-wrap"> <h4 class="heading text-left footer__heading">Retrouvez-nous sur les réseaux sociaux </h4> <div class="social__links columns social__links__row"> <a href="http://www.linkedin.com/company/infoq"><span class="icon icon__large icon__social icon__linkedin"></span></a> <a href="#" id="footerNewsletterRssLink"><span class="icon icon__large icon__social icon__rss"></span></a> <a href="http://twitter.com/infoqfr" target="_blank"><span class="icon icon__large icon__social icon__twitter"></span></a> <a href="https://www.facebook.com/InfoQ-75911537320" target="_blank"><span class="icon icon__large icon__social icon__fb"></span></a> </div> </div> <div data-col="1/4" class="footer__stayin-wrap"> <h4 class="heading text-left footer__heading">Stay in the know</h4> <div class="stayIn_panel_container"> <a href="/podcasts/" class="stayIn_panel" target="_blank" rel="noreferrer noopener"><span>The InfoQ Podcast</span><picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLXBvZGNhc3QuanBnIiwiZWRpdHMiOiB7IndlYnAiOiB7ICJxdWFsaXR5Ijo4MH19fQ==" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLXBvZGNhc3QuanBnIiwiZWRpdHMiOiB7ImpwZWciOiB7ICJxdWFsaXR5Ijo4MH19fQ==" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLXBvZGNhc3QuanBnIiwiZWRpdHMiOiB7ImpwZWciOiB7ICJxdWFsaXR5Ijo4MH19fQ==" loading="lazy" width="65px" height="64px" alt="The InfoQ Podcast Logo - Stay in the know"></picture></a> <a href="/podcasts/#engineering_culture" class="stayIn_panel" target="_blank" rel="noreferrer noopener"><span>Engineering Culture Podcast</span><picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLXBvZGNhc3QtZW5naW5lZXJpbmctY3VsdHVyZS5qcGciLCJlZGl0cyI6IHsid2VicCI6IHsgInF1YWxpdHkiOjgwfX19" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLXBvZGNhc3QtZW5naW5lZXJpbmctY3VsdHVyZS5qcGciLCJlZGl0cyI6IHsianBlZyI6IHsgInF1YWxpdHkiOjgwfX19" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLXBvZGNhc3QtZW5naW5lZXJpbmctY3VsdHVyZS5qcGciLCJlZGl0cyI6IHsianBlZyI6IHsgInF1YWxpdHkiOjgwfX19" loading="lazy" width="65px" height="64px" alt="Engineering Culture Podcast Logo - Stay in the knoww"></picture></a> <a href="/software-architects-newsletter/" class="stayIn_panel" target="_blank" rel="noreferrer noopener"><span>The Software Architects' Newsletter</span><picture><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLWFyY2hpdGVjdC1uZXdzbGV0dGVyLmpwZyIsImVkaXRzIjogeyJ3ZWJwIjogeyAicXVhbGl0eSI6ODB9fX0=" type="image/webp"><source srcset="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLWFyY2hpdGVjdC1uZXdzbGV0dGVyLmpwZyIsImVkaXRzIjogeyJqcGVnIjogeyAicXVhbGl0eSI6ODB9fX0=" type="image/webp"><img src="https://imgopt.infoq.com/eyJidWNrZXQiOiAiYXNzZXRzLmluZm9xLmNvbSIsImtleSI6ICJ3ZWIvZm9vdGVyL2luZm9xLWFyY2hpdGVjdC1uZXdzbGV0dGVyLmpwZyIsImVkaXRzIjogeyJqcGVnIjogeyAicXVhbGl0eSI6ODB9fX0=" loading="lazy" width="65px" height="64px" alt="The Software Architects' Newsletter Logo - Stay in the know"></picture></a> </div> </div> </div> </section> <section data-nosnippet class="container footer__bottom section white align__left"> <div class="container__inner columns"> <div data-col="2/3" class="column"> <div class="footer__contact contact columns"> <span data-col="1/6"> Feedback Général <a href="mailto:feedback-fr@infoq.com">feedback-fr@infoq.com</a> </span> <span data-col="1/6"> Publicité <a href="mailto:sales-fr@infoq.com">sales-fr@infoq.com</a> </span> <span data-col="1/6"> Éditorial <a href="mailto:editors-fr@infoq.com">editors-fr@infoq.com</a> </span> <span data-col="1/6"> Marketing <a href="mailto:marketing@infoq.com">marketing@infoq.com</a> </span> </div> </div> <div class="column" data-col="1/3"> <p class="footer__more"> InfoQ.com et tous les contenus sont copyright © 2006-2025 C4Media Inc.<br/> <a href="/fr/privacy-notice/" target="_blank">Politique de confidentialité</a></span> </p> </div> </div> </section> </footer> <!-- ####### SITE END ######### --> </div> <div class="intbt"> <a href="/int/bt/" title="bt">BT</a> </div> <script type="text/javascript"> $.when(humanDetectionAsync()).then( function(status) { $.getScript("/scripts/__hd.ifq?hdt=NQsIuqslaUg7WuNB&ha=" + status); } ); </script> <script type="text/javascript"> var pageFullyLoaded = false; // this event is fired by frontend once all the necessary things have been done(mobile display, moving vcr boxes around when needed...) infoq.event.on('loaded', function(e) { pageFullyLoaded = true; }); infoq.event.on('pageWidthChanged', function(e) { // re-execute tracking vcr impressions when this event happens (it only happens when elements are added/removed from page) // doTrackVcrImpressions takes into account the data-trk-impr="true" if =false the element was already tracked. // this is needed when switching from mobile to desktop or when layout on mobile changes and desktop version is displayed. New elements become visible. Tracker.safeExec(Tracker.doTrackVcrImpressions); // these 2 need to be called also because we might be on a content page. In case we are not nothing happens VCR.doTrackingCustomRightbar(); VCR.doTrackingCustomRightbarForPresentations() }); //check to see if error page if(window.device !== undefined) { var intervalImpressions = setInterval(function() { var shouldTrack = false; // no vcr widgets on index pages if(window.isIndexPage) { if(window.sponsoredPodcastDone === undefined || window.sponsoredPodcastDone) { shouldTrack = true; } } else //on homepage, bottom widget + 2 native widgets if(InfoQConstants.pageType == "HOMEPAGE" && window.finishedVcrOptional1 && window.finishedRelatedVcr && (window.finishedVcrOptional2 === undefined || window.finishedVcrOptional2)) { shouldTrack = true; } else // rightbar widgets + native widgets + content vcr widgets if((InfoQConstants.pageType == "NEWS_PAGE" || InfoQConstants.pageType == "ARTICLE_PAGE") && ((window.finishedRightbarVcr || window.finishedRightbarVcr === undefined) && window.contentVcrFinished)) { shouldTrack = true; } else if ((InfoQConstants.pageType == "PRESENTATION_PAGE") && (window.contentVcrFinished || window.contentVcrFinished === undefined) && (window.finishedRightbarVcr || window.finishedRightbarVcr === undefined) ) { shouldTrack = true; } else // native widgets + content widgets if(window.contentVcrFinished && (window.finishedVcrOptional1 || window.finishedVcrOptional1 === undefined) && (window.finishedVcrOptional2 || window.finishedVcrOptional2 === undefined)) { shouldTrack = true; } // we start tracking only after the page is fully loaded, frontend signals that they finished everything related to page display. if(shouldTrack && pageFullyLoaded) { clearInterval(intervalImpressions); Tracker.safeExec(Tracker.doTrackVcrImpressions); // start tracking viewable impressions also only after everything is ready function callbackRouter(entries, observer) { var targets = new Array(); entries.forEach(function (entry) { var target = entry.target; if (target.dataset.trkView === 'false') return; if (entry.intersectionRatio > 0) { target.dataset.trkView = false; targets.push(target); } }); Tracker.doTrackViewableImpressions(targets); } var elementsForTrackingViewableImpressions = document.querySelectorAll('[data-trk-view="true"]') var observer = new IntersectionObserver(callbackRouter, { threshold: 0.3 }); elementsForTrackingViewableImpressions.forEach(observer.observe.bind(observer)); } }, 500); } $(document).ready(function () { // desktop notifications widget Tracker.encodeNotificationLinks($(".f_notificationWidget")); // mobile notifications widget Tracker.encodeNotificationLinks($(".h_notifications")); // desktop notifications page Tracker.encodeNotificationLinks($(".notification-page")); // mobile notifications page Tracker.encodeNotificationLinks($(".notifications_page")); }); </script> <script type="text/javascript"> if(window.location.hash){ var hash = window.location.hash.substring(1); if(hash == 'subscribe'){ $('html,body').animate({scrollTop: $('.ftxt3 > .newsletter').offset().top}, 'slow'); } } </script> <script type="text/javascript"> var newsletterSubscriptionURL ='/fr/newsletter/subscribe.action'; DynamicLinks.updateRssLinks('XnLuCjIf6z9BHCGZ6Nd4R76O32258ENr'); ContentSummary.setSelectedTab('fr'); //when user enters the main content area show default topics in the topics bar $("#content-wrapper").mouseenter(function() { showDefaultTopics(); }); Bookmarks.contentTitle = ""; Bookmarks.apiUrl = '/widgets/bookmark.action'; Bookmarks.isContentBookmarked = ""; </script> <script type="text/javascript"> var $buoop = {vs:{i:6,f:1,o:10.1,s:1}} $buoop.ol = window.onload; $(document).ready(function() { try {if ($buoop.ol) $buoop.ol();}catch (e) {} var e = document.createElement("script"); e.setAttribute("type", "text/javascript"); e.setAttribute("src", "https://cdn.infoq.com/statics_s2_20250228123450/scripts/lib/browser-update-org/update.js"); document.body.appendChild(e); }); </script> <script type='text/javascript'> try { mixpanel.track('page viewed', { 'page name' : document.title, 'url' : window.location.pathname }); } catch(err) { } </script> <!-- Latest Version --> <script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"></script> <script> const config = { apiKey: '8910ea974a96ffb6f927952b4ae9b9b0cc3e5973', product: 'PRO_MULTISITE', // general settings consentCookieExpiry: 90, encodeCookie: true, sameSiteCookie: true, // if false, cookie set as SameSite=None;secure; sameSiteValue: ';secure', // either 'Strict', 'Lax', or 'None' subDomains: true, initialState: 'notify', // 'notify','top','box' require pro licence notifyOnce: false, setInnerHTML: true, //layout settings layout: 'slideout', position: 'left', theme: 'light', acceptButton: true, rejectButton: true, closeOnGlobalChange: true, closeStyle: 'icon', toggleType: 'slider', notifyDismissButton: true, settingsStyle: 'link', excludedCountries: ['US'], /*accessibility: { disableSiteScrolling: true, },*/ statement: { description: 'For more detailed information about the cookies we use, see our', name: 'Cookie Policy', url: 'https://www.infoq.com/cookie-policy', updated: '01/01/2024', }, // cookies starting from 'cookie_expire' are from live.infoq.com but since we use the same tool on the same domain we need to specify those too so // that infoq.com cookieControl does not delete live.infoq.com cookies(also infoq.com cookies have been specified in live.infoq.com cookieControl configs) necessaryCookies: ['RegUserCookie', 'UserCookie', 'IdpCookie', 'ConversionTrackingV2_','PSAdialog','*P13NWN*','topbarSurvey','__bkm','JSESSIONID','mp_','_mixpanel','CloudFront-Key-Pair-Id','CloudFront-Policy','CloudFront-Signature','cookie_expire','discount_promo_closed','discount_promo_code','discount_promo_submitted','exit_survey_popup','referrer_popup','voting_popup_*','AWSALB','AWSALBCORS','aws-waf-token'], optionalCookies: [ { name: 'analytics', label: 'Analytics', description: 'Analytical cookies help us to improve our website by collecting and reporting information on its usage.', cookies: ['_ga', '_ga*', '_gid', '_gat', '__utma', '__utmt', '__utmb', '__utmc', '__utmz', '__utmv'], onAccept: function(){ gtag('consent', 'update', {'analytics_storage': 'granted'}); }, onRevoke: function(){ gtag('consent', 'update', {'analytics_storage': 'denied'}); } }, { name: 'marketing', label: 'Advertising', description: 'We use advertising cookies to display advertisements to you for our products.', onAccept: function(){ gtag('consent', 'update', {'ad_storage': 'granted', 'ad_personalization': 'granted', 'ad_user_data': 'granted'}); }, onRevoke: function(){ gtag('consent', 'update', {'ad_storage': 'denied', 'ad_personalization': 'denied', 'ad_user_data': 'denied'}); } } ], text : { // main preference panels title: '<h3>Our use of cookies</h3>', intro: 'We use necessary cookies to make our site work. Functional cookies help enhance the performance and functionality of the site. '+ 'We\'d also like to set analytics cookies to help us improve your experience by measuring how you use the site. '+ 'These will be set only if you accept. ', acceptSettings: 'I Accept', rejectSettings: 'I Do Not Accept', necessaryTitle : '<h3>Necessary Cookies</h3>', necessaryDescription : 'Necessary cookies enable core functionality ' + 'such as page navigation and access to secure areas. '+ 'The website cannot function properly without '+ 'these cookies, and can only be disabled by changing '+ 'your browser preferences.', closeLabel: 'Close Cookie Control', cornerButton: 'Set cookie preferences', // main preference panel controls on: 'On', off : 'Off', thirdPartyTitle : 'Some cookies require your attention', thirdPartyDescription : 'Consent for the following cookies could not be '+ 'automatically revoked. Please follow the link(s) '+ 'below to opt out manually.', // notification panels (only accessible for pro licences) notifyTitle : 'Your choice regarding cookies on this site', notifyDescription : 'We use cookies to optimise site functionality and '+ 'give you the best possible experience.', accept : 'I Accept', reject: 'I Do Not Accept', settings : 'Settings', }, branding : { removeAbout: true, }, }; // do not load this for local envs only. for testing on local envs remove/modify this condition if(InfoQConstants.pageUrl.indexOf('local')===-1){ CookieControl.load( config ); } </script> </body> </html> <!-- s2 -->