{"id":1926,"date":"2014-05-05T13:43:14","date_gmt":"2014-05-05T12:43:14","guid":{"rendered":"http:\/\/iamwcew.fr.oracle.com\/blog\/?p=1926"},"modified":"2014-05-05T13:43:14","modified_gmt":"2014-05-05T12:43:14","slug":"restful-services-avec-oracle-apex","status":"publish","type":"post","link":"https:\/\/gpmfactory.com\/index.php\/2014\/05\/05\/restful-services-avec-oracle-apex\/","title":{"rendered":"RESTful services avec Oracle APEX"},"content":{"rendered":"<p>Pour utiliser des appels REST dans des protos, <strong><a href=\"apex.oracle.com\">Oracle APEX<\/a><\/strong> est un tr\u00e8s bon <a href=\"http:\/\/docs.oracle.com\/cd\/E37097_01\/doc\/doc.42\/e35128\/restful_svc.htm#AEUTL445\">outil pour g\u00e9n\u00e9rer des <strong>services RESTful<\/strong><\/a>accessibles en cloud.<\/p>\n<p><strong>APEX<\/strong> g\u00e8re la pagination automatiquement , permet le <a href=\"http:\/\/www.w3.org\/TR\/cors\/\">CORS<\/a> et utilise le mode d\u2019authentification <a href=\"http:\/\/tools.ietf.org\/html\/rfc6749\">OAuth2<\/a> (support de \u00a0<a href=\"http:\/\/tools.ietf.org\/html\/rfc6749#section-1.3.1\">Authorization Code<\/a> et <a href=\"http:\/\/tools.ietf.org\/html\/rfc6749#section-4.2\">Implicit Grant<\/a>).<\/p>\n<p><em>All public RESTful Services are automatically CORS enabled, this means any public RESTful Service can be accessed from any web origin via an\u00a0<a href=\"http:\/\/www.w3.org\/TR\/XMLHttpRequest\/\">XMLHttpRequest<\/a><\/em><em>. For non public (protected) RESTful Services, Resource Handler definitions include a new\u00a0<\/em><em>Origins Allowed<\/em><em>\u00a0<\/em><em>field that enables you to include a comma delimited list of other server names that are permitted to make cross origin requests to the RESTful Service.<\/em><\/p>\n<p>La d\u00e9finition des services se fait au travers d\u2019un assistant. Un peu de PL\/SQL est \u00e0 pr\u00e9voir, notamment pour les m\u00e9thodes PUT et POST, mais rien de sorcier.<\/p>\n<p>Le <em>listener<\/em> Apex a \u00e9t\u00e9 renomm\u00e9 <strong>Oracle Rest Data Services<\/strong> (ORDS). Tomcat est d\u00e9sormais support\u00e9, ainsi que WLS et Glassfish, bien sur.<\/p>\n<p>Exemples\u00a0\u00ab\u00a0live\u00a0\u00bb en format JSON (ou CSV) depuis une instance publique:<\/p>\n<ul>\n<li><a href=\"Collection%20avec%20pagination\">Collection avec pagination<\/a> (https:\/\/apex.oracle.com\/pls\/apex\/teamfr\/hr\/employees\/)<\/li>\n<li><a href=\"https:\/\/apex.oracle.com\/pls\/apex\/teamfr\/hr\/employees\/7369\">Query sur un ID<\/a> (nro 7369) (https:\/\/apex.oracle.com\/pls\/apex\/teamfr\/hr\/employees\/7369)<\/li>\n<\/ul>\n<p>Administration des services:<a title=\"Admin des services sur ORDS\" href=\"https:\/\/apex.oracle.com\/pls\/apex\/teamfr\/ui\/oauth2\/clients\/\">\u00a0https:\/\/apex.oracle.com\/pls\/apex\/teamfr\/ui\/oauth2\/clients\/<\/a><\/p>\n<p>(note\u00a0: <em>teamfr<\/em> est le nom de mon instance sur apex.oracle.com)<\/p>\n<p>Cf bon <a href=\"http:\/\/www.oracle.com\/technetwork\/developer-tools\/apex-listener\/documentation\/listener-dev-guide-1979546.html\">tutorial sur les services REST apex<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour utiliser des appels REST dans des protos, Oracle APEX est un tr\u00e8s bon outil pour g\u00e9n\u00e9rer des services RESTfulaccessibles en cloud. APEX g\u00e8re&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,10],"tags":[],"ppma_author":[150],"class_list":["post-1926","post","type-post","status-publish","format-standard","hentry","category-dev","category-notes"],"authors":[{"term_id":150,"user_id":1,"is_guest":0,"slug":"admin8700","display_name":"Patrick","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/209d5ed69b74d288390621ab4c1d3773?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/1926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/comments?post=1926"}],"version-history":[{"count":0,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/1926\/revisions"}],"wp:attachment":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/media?parent=1926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/categories?post=1926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/tags?post=1926"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/ppma_author?post=1926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}