From 04ede12878ebf4ce189548c841f229a02c8446d7 Mon Sep 17 00:00:00 2001 From: michael Date: Mon, 23 Dec 2019 13:27:46 +0000 Subject: [PATCH] * Merging revisions r43584 from trunk: ------------------------------------------------------------------------ r43584 | michael | 2019-11-25 15:14:19 +0100 (Mon, 25 Nov 2019) | 1 line * Simple, read-only example, no authentication ------------------------------------------------------------------------ git-svn-id: branches/fixes_3_2@43724 - --- .gitattributes | 4 + .../examples/restbridge/readonly/country.sql | 488 ++++++++++++++++++ .../examples/restbridge/readonly/readme.txt | 97 ++++ .../restbridge/readonly/restreadonly.lpi | 58 +++ .../restbridge/readonly/restreadonly.pp | 180 +++++++ 5 files changed, 827 insertions(+) create mode 100644 packages/fcl-web/examples/restbridge/readonly/country.sql create mode 100644 packages/fcl-web/examples/restbridge/readonly/readme.txt create mode 100644 packages/fcl-web/examples/restbridge/readonly/restreadonly.lpi create mode 100644 packages/fcl-web/examples/restbridge/readonly/restreadonly.pp diff --git a/.gitattributes b/.gitattributes index ddbb1287ad..0ff7c7e318 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3274,6 +3274,10 @@ packages/fcl-web/examples/restbridge/expenses-data.sql svneol=native#text/plain packages/fcl-web/examples/restbridge/expenses-fb.sql svneol=native#text/plain packages/fcl-web/examples/restbridge/expenses-pq.sql svneol=native#text/plain packages/fcl-web/examples/restbridge/expenses-sqlite.sql svneol=native#text/plain +packages/fcl-web/examples/restbridge/readonly/country.sql svneol=native#text/plain +packages/fcl-web/examples/restbridge/readonly/readme.txt svneol=native#text/plain +packages/fcl-web/examples/restbridge/readonly/restreadonly.lpi svneol=native#text/plain +packages/fcl-web/examples/restbridge/readonly/restreadonly.pp svneol=native#text/plain packages/fcl-web/examples/routing-session/routingsessiondemo.lpi svneol=native#text/plain packages/fcl-web/examples/routing-session/routingsessiondemo.lpr svneol=native#text/plain packages/fcl-web/examples/routing/README svneol=native#text/plain diff --git a/packages/fcl-web/examples/restbridge/readonly/country.sql b/packages/fcl-web/examples/restbridge/readonly/country.sql new file mode 100644 index 0000000000..c1b9ee45d3 --- /dev/null +++ b/packages/fcl-web/examples/restbridge/readonly/country.sql @@ -0,0 +1,488 @@ +CREATE TABLE country ( + iso character(2) NOT NULL, + name character varying(80) NOT NULL, + nicename character varying(80) NOT NULL, + iso3 character(3) DEFAULT NULL::bpchar, + numcode smallint, + phonecode smallint NOT NULL, + CONSTRAINT country_pkey PRIMARY KEY (iso) +); + +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AF', 'AFGHANISTAN', 'Afghanistan', 'AFG', 4, 93); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AL', 'ALBANIA', 'Albania', 'ALB', 8, 355); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('DZ', 'ALGERIA', 'Algeria', 'DZA', 12, 213); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AS', 'AMERICAN SAMOA', 'American Samoa', 'ASM', 16, 1684); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AD', 'ANDORRA', 'Andorra', 'AND', 20, 376); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AO', 'ANGOLA', 'Angola', 'AGO', 24, 244); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AI', 'ANGUILLA', 'Anguilla', 'AIA', 660, 1264); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AQ', 'ANTARCTICA', 'Antarctica', '', , 0); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AG', 'ANTIGUA AND BARBUDA', 'Antigua and Barbuda', 'ATG', 28, 1268); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AR', 'ARGENTINA', 'Argentina', 'ARG', 32, 54); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AM', 'ARMENIA', 'Armenia', 'ARM', 51, 374); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AW', 'ARUBA', 'Aruba', 'ABW', 533, 297); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AU', 'AUSTRALIA', 'Australia', 'AUS', 36, 61); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AT', 'AUSTRIA', 'Austria', 'AUT', 40, 43); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AZ', 'AZERBAIJAN', 'Azerbaijan', 'AZE', 31, 994); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BS', 'BAHAMAS', 'Bahamas', 'BHS', 44, 1242); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BH', 'BAHRAIN', 'Bahrain', 'BHR', 48, 973); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BD', 'BANGLADESH', 'Bangladesh', 'BGD', 50, 880); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BB', 'BARBADOS', 'Barbados', 'BRB', 52, 1246); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BY', 'BELARUS', 'Belarus', 'BLR', 112, 375); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BE', 'BELGIUM', 'Belgium', 'BEL', 56, 32); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BZ', 'BELIZE', 'Belize', 'BLZ', 84, 501); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BJ', 'BENIN', 'Benin', 'BEN', 204, 229); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BM', 'BERMUDA', 'Bermuda', 'BMU', 60, 1441); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BT', 'BHUTAN', 'Bhutan', 'BTN', 64, 975); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BO', 'BOLIVIA', 'Bolivia', 'BOL', 68, 591); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BA', 'BOSNIA AND HERZEGOVINA', 'Bosnia and Herzegovina', 'BIH', 70, 387); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BW', 'BOTSWANA', 'Botswana', 'BWA', 72, 267); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BV', 'BOUVET ISLAND', 'Bouvet Island', '', , 0); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BR', 'BRAZIL', 'Brazil', 'BRA', 76, 55); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IO', 'BRITISH INDIAN OCEAN TERRITORY', 'British Indian Ocean Territory', '', , 246); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BN', 'BRUNEI DARUSSALAM', 'Brunei Darussalam', 'BRN', 96, 673); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BG', 'BULGARIA', 'Bulgaria', 'BGR', 100, 359); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BF', 'BURKINA FASO', 'Burkina Faso', 'BFA', 854, 226); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('BI', 'BURUNDI', 'Burundi', 'BDI', 108, 257); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KH', 'CAMBODIA', 'Cambodia', 'KHM', 116, 855); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CM', 'CAMEROON', 'Cameroon', 'CMR', 120, 237); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CA', 'CANADA', 'Canada', 'CAN', 124, 1); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CV', 'CAPE VERDE', 'Cape Verde', 'CPV', 132, 238); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KY', 'CAYMAN ISLANDS', 'Cayman Islands', 'CYM', 136, 1345); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CF', 'CENTRAL AFRICAN REPUBLIC', 'Central African Republic', 'CAF', 140, 236); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TD', 'CHAD', 'Chad', 'TCD', 148, 235); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CL', 'CHILE', 'Chile', 'CHL', 152, 56); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CN', 'CHINA', 'China', 'CHN', 156, 86); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CX', 'CHRISTMAS ISLAND', 'Christmas Island', '', , 61); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CC', 'COCOS (KEELING) ISLANDS', 'Cocos (Keeling) Islands', '', , 672); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CO', 'COLOMBIA', 'Colombia', 'COL', 170, 57); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KM', 'COMOROS', 'Comoros', 'COM', 174, 269); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CG', 'CONGO', 'Congo', 'COG', 178, 242); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CD', 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', 'Congo, the Democratic Republic of the', 'COD', 180, 242); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CK', 'COOK ISLANDS', 'Cook Islands', 'COK', 184, 682); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CR', 'COSTA RICA', 'Costa Rica', 'CRI', 188, 506); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CI', 'COTE D''IVOIRE', 'Cote D''Ivoire', 'CIV', 384, 225); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('HR', 'CROATIA', 'Croatia', 'HRV', 191, 385); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CU', 'CUBA', 'Cuba', 'CUB', 192, 53); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CY', 'CYPRUS', 'Cyprus', 'CYP', 196, 357); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CZ', 'CZECH REPUBLIC', 'Czech Republic', 'CZE', 203, 420); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('DK', 'DENMARK', 'Denmark', 'DNK', 208, 45); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('DJ', 'DJIBOUTI', 'Djibouti', 'DJI', 262, 253); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('DM', 'DOMINICA', 'Dominica', 'DMA', 212, 1767); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('DO', 'DOMINICAN REPUBLIC', 'Dominican Republic', 'DOM', 214, 1809); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('EC', 'ECUADOR', 'Ecuador', 'ECU', 218, 593); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('EG', 'EGYPT', 'Egypt', 'EGY', 818, 20); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SV', 'EL SALVADOR', 'El Salvador', 'SLV', 222, 503); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GQ', 'EQUATORIAL GUINEA', 'Equatorial Guinea', 'GNQ', 226, 240); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ER', 'ERITREA', 'Eritrea', 'ERI', 232, 291); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('EE', 'ESTONIA', 'Estonia', 'EST', 233, 372); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ET', 'ETHIOPIA', 'Ethiopia', 'ETH', 231, 251); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('FK', 'FALKLAND ISLANDS (MALVINAS)', 'Falkland Islands (Malvinas)', 'FLK', 238, 500); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('FO', 'FAROE ISLANDS', 'Faroe Islands', 'FRO', 234, 298); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('FJ', 'FIJI', 'Fiji', 'FJI', 242, 679); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('FI', 'FINLAND', 'Finland', 'FIN', 246, 358); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('FR', 'FRANCE', 'France', 'FRA', 250, 33); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GF', 'FRENCH GUIANA', 'French Guiana', 'GUF', 254, 594); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PF', 'FRENCH POLYNESIA', 'French Polynesia', 'PYF', 258, 689); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TF', 'FRENCH SOUTHERN TERRITORIES', 'French Southern Territories', '', , 0); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GA', 'GABON', 'Gabon', 'GAB', 266, 241); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GM', 'GAMBIA', 'Gambia', 'GMB', 270, 220); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GE', 'GEORGIA', 'Georgia', 'GEO', 268, 995); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('DE', 'GERMANY', 'Germany', 'DEU', 276, 49); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GH', 'GHANA', 'Ghana', 'GHA', 288, 233); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GI', 'GIBRALTAR', 'Gibraltar', 'GIB', 292, 350); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GR', 'GREECE', 'Greece', 'GRC', 300, 30); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GL', 'GREENLAND', 'Greenland', 'GRL', 304, 299); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GD', 'GRENADA', 'Grenada', 'GRD', 308, 1473); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GP', 'GUADELOUPE', 'Guadeloupe', 'GLP', 312, 590); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GU', 'GUAM', 'Guam', 'GUM', 316, 1671); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GT', 'GUATEMALA', 'Guatemala', 'GTM', 320, 502); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GN', 'GUINEA', 'Guinea', 'GIN', 324, 224); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GW', 'GUINEA-BISSAU', 'Guinea-Bissau', 'GNB', 624, 245); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GY', 'GUYANA', 'Guyana', 'GUY', 328, 592); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('HT', 'HAITI', 'Haiti', 'HTI', 332, 509); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('HM', 'HEARD ISLAND AND MCDONALD ISLANDS', 'Heard Island and Mcdonald Islands', '', , 0); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VA', 'HOLY SEE (VATICAN CITY STATE)', 'Holy See (Vatican City State)', 'VAT', 336, 39); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('HN', 'HONDURAS', 'Honduras', 'HND', 340, 504); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('HK', 'HONG KONG', 'Hong Kong', 'HKG', 344, 852); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('HU', 'HUNGARY', 'Hungary', 'HUN', 348, 36); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IS', 'ICELAND', 'Iceland', 'ISL', 352, 354); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IN', 'INDIA', 'India', 'IND', 356, 91); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ID', 'INDONESIA', 'Indonesia', 'IDN', 360, 62); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IR', 'IRAN, ISLAMIC REPUBLIC OF', 'Iran, Islamic Republic of', 'IRN', 364, 98); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IQ', 'IRAQ', 'Iraq', 'IRQ', 368, 964); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IE', 'IRELAND', 'Ireland', 'IRL', 372, 353); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IL', 'ISRAEL', 'Israel', 'ISR', 376, 972); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('IT', 'ITALY', 'Italy', 'ITA', 380, 39); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('JM', 'JAMAICA', 'Jamaica', 'JAM', 388, 1876); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('JP', 'JAPAN', 'Japan', 'JPN', 392, 81); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('JO', 'JORDAN', 'Jordan', 'JOR', 400, 962); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KZ', 'KAZAKHSTAN', 'Kazakhstan', 'KAZ', 398, 7); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KE', 'KENYA', 'Kenya', 'KEN', 404, 254); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KI', 'KIRIBATI', 'Kiribati', 'KIR', 296, 686); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KP', 'KOREA, DEMOCRATIC PEOPLE''S REPUBLIC OF', 'Korea, Democratic People''s Republic of', 'PRK', 408, 850); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KR', 'KOREA, REPUBLIC OF', 'Korea, Republic of', 'KOR', 410, 82); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KW', 'KUWAIT', 'Kuwait', 'KWT', 414, 965); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KG', 'KYRGYZSTAN', 'Kyrgyzstan', 'KGZ', 417, 996); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LA', 'LAO PEOPLE''S DEMOCRATIC REPUBLIC', 'Lao People''s Democratic Republic', 'LAO', 418, 856); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LV', 'LATVIA', 'Latvia', 'LVA', 428, 371); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LB', 'LEBANON', 'Lebanon', 'LBN', 422, 961); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LS', 'LESOTHO', 'Lesotho', 'LSO', 426, 266); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LR', 'LIBERIA', 'Liberia', 'LBR', 430, 231); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LY', 'LIBYAN ARAB JAMAHIRIYA', 'Libyan Arab Jamahiriya', 'LBY', 434, 218); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LI', 'LIECHTENSTEIN', 'Liechtenstein', 'LIE', 438, 423); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LT', 'LITHUANIA', 'Lithuania', 'LTU', 440, 370); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LU', 'LUXEMBOURG', 'Luxembourg', 'LUX', 442, 352); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MO', 'MACAO', 'Macao', 'MAC', 446, 853); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MK', 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'Macedonia, the Former Yugoslav Republic of', 'MKD', 807, 389); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MG', 'MADAGASCAR', 'Madagascar', 'MDG', 450, 261); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MW', 'MALAWI', 'Malawi', 'MWI', 454, 265); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MY', 'MALAYSIA', 'Malaysia', 'MYS', 458, 60); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MV', 'MALDIVES', 'Maldives', 'MDV', 462, 960); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ML', 'MALI', 'Mali', 'MLI', 466, 223); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MT', 'MALTA', 'Malta', 'MLT', 470, 356); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MH', 'MARSHALL ISLANDS', 'Marshall Islands', 'MHL', 584, 692); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MQ', 'MARTINIQUE', 'Martinique', 'MTQ', 474, 596); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MR', 'MAURITANIA', 'Mauritania', 'MRT', 478, 222); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MU', 'MAURITIUS', 'Mauritius', 'MUS', 480, 230); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('YT', 'MAYOTTE', 'Mayotte', '', , 269); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MX', 'MEXICO', 'Mexico', 'MEX', 484, 52); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('FM', 'MICRONESIA, FEDERATED STATES OF', 'Micronesia, Federated States of', 'FSM', 583, 691); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MD', 'MOLDOVA, REPUBLIC OF', 'Moldova, Republic of', 'MDA', 498, 373); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MC', 'MONACO', 'Monaco', 'MCO', 492, 377); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MN', 'MONGOLIA', 'Mongolia', 'MNG', 496, 976); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MS', 'MONTSERRAT', 'Montserrat', 'MSR', 500, 1664); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MA', 'MOROCCO', 'Morocco', 'MAR', 504, 212); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MZ', 'MOZAMBIQUE', 'Mozambique', 'MOZ', 508, 258); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MM', 'MYANMAR', 'Myanmar', 'MMR', 104, 95); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NA', 'NAMIBIA', 'Namibia', 'NAM', 516, 264); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NR', 'NAURU', 'Nauru', 'NRU', 520, 674); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NP', 'NEPAL', 'Nepal', 'NPL', 524, 977); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NL', 'NETHERLANDS', 'Netherlands', 'NLD', 528, 31); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AN', 'NETHERLANDS ANTILLES', 'Netherlands Antilles', 'ANT', 530, 599); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NC', 'NEW CALEDONIA', 'New Caledonia', 'NCL', 540, 687); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NZ', 'NEW ZEALAND', 'New Zealand', 'NZL', 554, 64); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NI', 'NICARAGUA', 'Nicaragua', 'NIC', 558, 505); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NE', 'NIGER', 'Niger', 'NER', 562, 227); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NG', 'NIGERIA', 'Nigeria', 'NGA', 566, 234); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NU', 'NIUE', 'Niue', 'NIU', 570, 683); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NF', 'NORFOLK ISLAND', 'Norfolk Island', 'NFK', 574, 672); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('MP', 'NORTHERN MARIANA ISLANDS', 'Northern Mariana Islands', 'MNP', 580, 1670); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('NO', 'NORWAY', 'Norway', 'NOR', 578, 47); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('OM', 'OMAN', 'Oman', 'OMN', 512, 968); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PK', 'PAKISTAN', 'Pakistan', 'PAK', 586, 92); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PW', 'PALAU', 'Palau', 'PLW', 585, 680); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PS', 'PALESTINIAN TERRITORY, OCCUPIED', 'Palestinian Territory, Occupied', '', , 970); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PA', 'PANAMA', 'Panama', 'PAN', 591, 507); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PG', 'PAPUA NEW GUINEA', 'Papua New Guinea', 'PNG', 598, 675); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PY', 'PARAGUAY', 'Paraguay', 'PRY', 600, 595); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PE', 'PERU', 'Peru', 'PER', 604, 51); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PH', 'PHILIPPINES', 'Philippines', 'PHL', 608, 63); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PN', 'PITCAIRN', 'Pitcairn', 'PCN', 612, 0); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PL', 'POLAND', 'Poland', 'POL', 616, 48); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PT', 'PORTUGAL', 'Portugal', 'PRT', 620, 351); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PR', 'PUERTO RICO', 'Puerto Rico', 'PRI', 630, 1787); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('QA', 'QATAR', 'Qatar', 'QAT', 634, 974); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('RE', 'REUNION', 'Reunion', 'REU', 638, 262); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('RO', 'ROMANIA', 'Romania', 'ROM', 642, 40); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('RU', 'RUSSIAN FEDERATION', 'Russian Federation', 'RUS', 643, 70); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('RW', 'RWANDA', 'Rwanda', 'RWA', 646, 250); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SH', 'SAINT HELENA', 'Saint Helena', 'SHN', 654, 290); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('KN', 'SAINT KITTS AND NEVIS', 'Saint Kitts and Nevis', 'KNA', 659, 1869); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LC', 'SAINT LUCIA', 'Saint Lucia', 'LCA', 662, 1758); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('PM', 'SAINT PIERRE AND MIQUELON', 'Saint Pierre and Miquelon', 'SPM', 666, 508); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VC', 'SAINT VINCENT AND THE GRENADINES', 'Saint Vincent and the Grenadines', 'VCT', 670, 1784); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('WS', 'SAMOA', 'Samoa', 'WSM', 882, 684); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SM', 'SAN MARINO', 'San Marino', 'SMR', 674, 378); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ST', 'SAO TOME AND PRINCIPE', 'Sao Tome and Principe', 'STP', 678, 239); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SA', 'SAUDI ARABIA', 'Saudi Arabia', 'SAU', 682, 966); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SN', 'SENEGAL', 'Senegal', 'SEN', 686, 221); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CS', 'SERBIA AND MONTENEGRO', 'Serbia and Montenegro', '', , 381); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SC', 'SEYCHELLES', 'Seychelles', 'SYC', 690, 248); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SL', 'SIERRA LEONE', 'Sierra Leone', 'SLE', 694, 232); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SG', 'SINGAPORE', 'Singapore', 'SGP', 702, 65); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SK', 'SLOVAKIA', 'Slovakia', 'SVK', 703, 421); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SI', 'SLOVENIA', 'Slovenia', 'SVN', 705, 386); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SB', 'SOLOMON ISLANDS', 'Solomon Islands', 'SLB', 90, 677); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SO', 'SOMALIA', 'Somalia', 'SOM', 706, 252); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ZA', 'SOUTH AFRICA', 'South Africa', 'ZAF', 710, 27); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GS', 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', 'South Georgia and the South Sandwich Islands', '', , 0); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ES', 'SPAIN', 'Spain', 'ESP', 724, 34); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('LK', 'SRI LANKA', 'Sri Lanka', 'LKA', 144, 94); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SD', 'SUDAN', 'Sudan', 'SDN', 736, 249); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SR', 'SURINAME', 'Suriname', 'SUR', 740, 597); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SJ', 'SVALBARD AND JAN MAYEN', 'Svalbard and Jan Mayen', 'SJM', 744, 47); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SZ', 'SWAZILAND', 'Swaziland', 'SWZ', 748, 268); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SE', 'SWEDEN', 'Sweden', 'SWE', 752, 46); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('CH', 'SWITZERLAND', 'Switzerland', 'CHE', 756, 41); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('SY', 'SYRIAN ARAB REPUBLIC', 'Syrian Arab Republic', 'SYR', 760, 963); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TW', 'TAIWAN, PROVINCE OF CHINA', 'Taiwan, Province of China', 'TWN', 158, 886); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TJ', 'TAJIKISTAN', 'Tajikistan', 'TJK', 762, 992); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TZ', 'TANZANIA, UNITED REPUBLIC OF', 'Tanzania, United Republic of', 'TZA', 834, 255); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TH', 'THAILAND', 'Thailand', 'THA', 764, 66); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TL', 'TIMOR-LESTE', 'Timor-Leste', '', , 670); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TG', 'TOGO', 'Togo', 'TGO', 768, 228); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TK', 'TOKELAU', 'Tokelau', 'TKL', 772, 690); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TO', 'TONGA', 'Tonga', 'TON', 776, 676); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TT', 'TRINIDAD AND TOBAGO', 'Trinidad and Tobago', 'TTO', 780, 1868); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TN', 'TUNISIA', 'Tunisia', 'TUN', 788, 216); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TR', 'TURKEY', 'Turkey', 'TUR', 792, 90); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TM', 'TURKMENISTAN', 'Turkmenistan', 'TKM', 795, 7370); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TC', 'TURKS AND CAICOS ISLANDS', 'Turks and Caicos Islands', 'TCA', 796, 1649); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('TV', 'TUVALU', 'Tuvalu', 'TUV', 798, 688); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('UG', 'UGANDA', 'Uganda', 'UGA', 800, 256); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('UA', 'UKRAINE', 'Ukraine', 'UKR', 804, 380); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('AE', 'UNITED ARAB EMIRATES', 'United Arab Emirates', 'ARE', 784, 971); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('GB', 'UNITED KINGDOM', 'United Kingdom', 'GBR', 826, 44); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('US', 'UNITED STATES', 'United States', 'USA', 840, 1); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('UM', 'UNITED STATES MINOR OUTLYING ISLANDS', 'United States Minor Outlying Islands', '', , 1); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('UY', 'URUGUAY', 'Uruguay', 'URY', 858, 598); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('UZ', 'UZBEKISTAN', 'Uzbekistan', 'UZB', 860, 998); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VU', 'VANUATU', 'Vanuatu', 'VUT', 548, 678); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VE', 'VENEZUELA', 'Venezuela', 'VEN', 862, 58); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VN', 'VIET NAM', 'Viet Nam', 'VNM', 704, 84); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VG', 'VIRGIN ISLANDS, BRITISH', 'Virgin Islands, British', 'VGB', 92, 1284); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('VI', 'VIRGIN ISLANDS, U.S.', 'Virgin Islands, U.s.', 'VIR', 850, 1340); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('WF', 'WALLIS AND FUTUNA', 'Wallis and Futuna', 'WLF', 876, 681); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('EH', 'WESTERN SAHARA', 'Western Sahara', 'ESH', 732, 212); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('YE', 'YEMEN', 'Yemen', 'YEM', 887, 967); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ZM', 'ZAMBIA', 'Zambia', 'ZMB', 894, 260); +INSERT INTO country (iso, name, nicename, iso3, numcode, phonecode) + VALUES ('ZW', 'ZIMBABWE', 'Zimbabwe', 'ZWE', 716, 263); diff --git a/packages/fcl-web/examples/restbridge/readonly/readme.txt b/packages/fcl-web/examples/restbridge/readonly/readme.txt new file mode 100644 index 0000000000..27889ff83e --- /dev/null +++ b/packages/fcl-web/examples/restbridge/readonly/readme.txt @@ -0,0 +1,97 @@ +Intro +----- +This example demonstrates how to simply set up a database for export in a +read-only manner. + +Execute with -h or --help to see the available command-line options. + +Setup +----- + +The country table (country.sql) can be used for sample data in the database +of your choice. + +Set up the connection in code (method SetUpConnection), +or in a connection.ini file with the following format: + +[database] +Type=postgresql +DatabaseName=YourDatabase +Host=localhost +username=me +password=secret +port=nnnn + +You can use another name as connection.ini, but then you must specify the +name with the -c or --config option. + +Once started, the server will display connection info and available resources. + + +Things to try +------------- +The following list possible queries, using either wget or curl: +(obviously, you can do the same in a browser) + +Get a list of available resources: +wget -q -O - "http://localhost:3000/metadata/" +curl -o - "http://localhost:3000/metadata/" + +Same, but only the names, in compact format: +wget -q -O - "http://localhost:3000/metadata/?fl=name&fmt=csv&metadata=0" +curl -o - "http://localhost:3000/metadata/?fl=name&fmt=csv&metadata=0" + + +Get metadata for country table: + +wget -q -O - "http://localhost:3000/metadata/country" +curl -o - "http://localhost:3000/metadata/country" + +Only get fieldnames: +wget -q -O - "http://localhost:3000/metadata/country?fl=name&fmt=csv" +curl -o - "http://localhost:3000/metadata/country?fl=name&fmt=csv" + +Get a list of all countries: + +wget -q -O - http://localhost:3000/country +curl -o - http://localhost:3000/country + +Get a list of all countries in compact format: +wget -q -O - "http://localhost:3000/country?humanreadable=0" +curl -o - "http://localhost:3000/country?humanreadable=0" + +Same as previous, and skip metadata as well: +wget -O - "http://localhost:3000/country?humanreadable=0&metadata=0" +curl -o - "http://localhost:3000/country?humanreadable=0&metadata=0" + +Get a list of countries in XML format: +wget -q -O - "http://localhost:3000/country?fmt=xml" +curl -o - "http://localhost:3000/country?fmt=xml" + +Limit returned fields. Get a list of all ISO country codes: + +wget -q -O - "http://localhost:3000/country?fl=iso" +curl -o - "http://localhost:3000/country?fl=iso"; + +Same, but in CSV format: +wget -q -O - "http://localhost:3000/country?fl=iso&fmt=csv" +curl -o - "http://localhost:3000/country?fl=iso&fmt=csv" + +Filtering: only ISO3 codes that start with M: +wget -q -O - "http://localhost:3000/country?iso3_gte=M&iso3_lt=N" +curl -o - "http://localhost:3000/country?iso3_gte=M&iso3_lt=N" + +Paging: First page, 10 records: + +wget -q -O - "http://localhost:3000/country?limit=10" +curl -o - "http://localhost:3000/country?limit=10" + +Paging: Second page, 10 records: +wget -q -O - "http://localhost:3000/country?limit=10&offset=10" +curl -o - "http://localhost:3000/country?limit=10offset=10" + +A full list of possibilities is available on: + +https://wiki.freepascal.org/SQLDBRestBridge#Features + + diff --git a/packages/fcl-web/examples/restbridge/readonly/restreadonly.lpi b/packages/fcl-web/examples/restbridge/readonly/restreadonly.lpi new file mode 100644 index 0000000000..d6ac58af9b --- /dev/null +++ b/packages/fcl-web/examples/restbridge/readonly/restreadonly.lpi @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + <UseAppBundle Value="False"/> + <ResourceType Value="res"/> + </General> + <BuildModes> + <Item Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + <UseFileFilters Value="True"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + <Modes Count="0"/> + </RunParams> + <Units> + <Unit> + <Filename Value="restreadonly.pp"/> + <IsPartOfProject Value="True"/> + <UnitName Value="demorestbridge"/> + </Unit> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <Target> + <Filename Value="restreadonly"/> + </Target> + <SearchPaths> + <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/packages/fcl-web/examples/restbridge/readonly/restreadonly.pp b/packages/fcl-web/examples/restbridge/readonly/restreadonly.pp new file mode 100644 index 0000000000..a9b4d7901d --- /dev/null +++ b/packages/fcl-web/examples/restbridge/readonly/restreadonly.pp @@ -0,0 +1,180 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by the Free Pascal development team + + SQLDB REST rest bridge demo applocation: readonly access + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +program demorestbridge; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Classes, SysUtils, CustApp, sqldbrestbridge, fphttpapp, IBConnection, odbcconn, mysql55conn, mysql56conn, pqconnection, + mssqlconn, oracleconnection, sqldbrestxml, sqldbrestio, sqldbrestschema, sqldbrestdata, sqldbrestjson, sqldbrestcsv, sqldbrestcds, + sqldbrestado, sqldbrestconst, sqldbrestauth, sqldbrestini, sqldb, sqldbrestauthini; + +type + { TRestServerDemoApplication } + + TRestServerDemoApplication = class(THTTPApplication) + private + procedure DisplayInfo; + function SetUpConnection: TSQLDBRestConnection; + Protected + FDisp : TSQLDBRestDispatcher; + protected + procedure DoRun; override; + public + constructor Create(TheOwner: TComponent); override; + destructor Destroy; override; + procedure WriteHelp; virtual; + end; + +{ TRestServerDemoApplication } + +procedure TRestServerDemoApplication.DoRun; +var + ErrorMsg: String; + C : TSQLDBRestConnection; + I : Integer; + +begin + // quick check parameters + ErrorMsg:=CheckOptions('hc:p:q', ['help','config:','port:','quiet']); + if ErrorMsg<>'' then + begin + ShowException(Exception.Create(ErrorMsg)); + Terminate; + Exit; + end; + // parse parameters + if HasOption('h', 'help') then + begin + WriteHelp; + Terminate; + Exit; + end; + Port:=StrToIntDef(GetOptionValue('p','port'),3000); + // Set up dispatcher + + // Create connection + C:=SetUpConnection; + // Allow filtering + FDisp.ExposeConnection(C,Nil,[foFilter]); + // Mark resources as read-only + With FDisp.Schemas[0].Schema.Resources do + For I:=0 to Count-1 do + Resources[i].AllowedOperations:=[roGet,roHead,roOptions]; + FDisp.Active:=true; + if not HasOption('q','quiet') then + DisplayInfo; + Inherited DoRun; +end; + +constructor TRestServerDemoApplication.Create(TheOwner: TComponent); +begin + inherited Create(TheOwner); + // Create dispatcher + FDisp:=TSQLDBRestDispatcher.Create(Self); + StopOnException:=True; +end; + +destructor TRestServerDemoApplication.Destroy; +begin + FreeAndNil(FDisp); + inherited Destroy; +end; + +Function TRestServerDemoApplication.SetUpConnection : TSQLDBRestConnection; + +Var + C : TSQLDBRestConnection; + FN : String; +begin + // Create with empty connection config. + C:=FDisp.Connections.AddConnection('','','','',''); + C.name:='connection'; + FN:=GetOptionValue('c', 'config'); + if FN='' then + FN:='connection.ini'; + if FileExists(FN) then + C.LoadFromIniFile(FN,'database',[]) + else + begin + // Try Default + C.ConnectionType:=TPQConnectionDef.TypeName; + C.DatabaseName:='fpctest'; + C.HostName:='localhost'; + C.UserName:='fpc'; + C.Password:='Shimrod'; + end; + Result:=C; +end; + +procedure TRestServerDemoApplication.DisplayInfo; + + + +Var + I : integer; + L : TStrings; + C : TSQLDBRestConnection; + +begin + Writeln('Listening on port : ',Port); + Writeln('local URL : http://localhost:',Port,'/'+FDisp.BasePath); + C:=FDisp.Connections[0]; + Writeln('Database connection : Type=',C.ConnectionType,', Host: ',C.HostName,', Database: ',C.DatabaseName,', User: ',C.UserName); + Writeln('Available resources :'); + With FDisp.Schemas[0].Schema.Resources do + For I:=0 to Count-1 do + Writeln(' ',Resources[i].ResourceName); + L:=TStringList.Create; + try + Writeln('Available output formats:'); + TStreamerFactory.Instance.GetStreamerList(L,rstOutput); + For I:=0 to L.Count-1 do + Writeln(' ',L[i]); + Writeln('Available Input formats:'); + L.Clear; + TStreamerFactory.Instance.GetStreamerList(L,rstOutput); + For I:=0 to L.Count-1 do + Writeln(' ',L[i]); + Finally + L.Free; + end; +end; + +procedure TRestServerDemoApplication.WriteHelp; + +begin + writeln('Usage: ', ExeName, ' [options]'); + Writeln('Where options is one or more of:'); + Writeln('-h --help this message'); + Writeln('-c --config=File Read connection data from .ini file'); + Writeln('-p --port=N Set listen port number'); + Writeln('-q --quiet Do not display info'); +end; + +var + Application: TRestServerDemoApplication; + +begin + Application:=TRestServerDemoApplication.Create(nil); + Application.Title:='SQLDB REST bridge Application - Readonly'; + Application.Run; + Application.Free; +end. +