πŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more β†’
Socket
Sign inDemoInstall
Socket

dojo-rql

Package Overview
Dependencies
Maintainers
2
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dojo-rql

The best project ever.

0.3.2
latest
Source
npm
Version published
Weekly downloads
7
-58.82%
Maintainers
2
Weekly downloads
Β 
Created
Source

Smart

The best project ever. #dojo-rql Module ΠœΠΎΠ΄ΡƒΠ»ΡŒ для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈcпользованиСм ΡƒΠΌΠ½Ρ‹Ρ…(Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Ρ‹Ρ…) Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²

  • Chart - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ…

  • Composite - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²

  • DataPreviewControlPanel - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для обьСдСнСния ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…

  • FilterControlPanel - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ

  • FilteredGrid - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…

  • FilterEditor - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для рСдактирования Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²

  • TableWithConfiguration - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сохранСния ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ настроСк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…

  • Tree - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ dstore

  • Util - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π²ΡΠΏΠΎΠΌΠ°Π³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ

  • extensions/GridRqlFilter - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π²ΡΠΏΠΎΠΌΠ°Π³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ

  • extensions/StoreRqlFilter - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π²ΡΠΏΠΎΠΌΠ°Π³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ

Π§Ρ‚ΠΎ Π±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ

УстановитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ: npm install dojo-rql

Π§Ρ‚ΠΎ Π±Ρ‹ быстро ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ использованию Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ слСдуйтС слСдущС иструкции

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Rest DataStore (Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ backend )


    var centralDataStore = new (declare([StoreRqlFilter, Trackable]))({
                'headers': {
                    'Accept': 'application/json'
                },
                'useRangeHeaders': true,
                "target": "/rest/users"
            });

Π”Π°Π»Π΅Π΅ создаСм Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²

        var filteredGridOption = {
            "title": "Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ",   // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ title элСмСнта 
            "name": "usersProfile",             // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ name элСмСнта 
            "options": {                        // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΏΡ†ΠΈΠΈ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²
                "columns": [
                    {"label": "id", "field": "id"},
                    {"label": "Имя", "field": "name"},
                    {"label": "Ѐамилия", "field": "surname"}
                ],
                "collection": centralDataStore,
                "selectionMode": "single",
                "pagingLinks": false,
                "pagingTextBox": true,
                "firstLastArrows": true,
                "rowsPerPage": 15,
                "pageSizeOptions": [10, 15, 25]
            },

            "declare": [
                "Grid",
                "Keyboard",
                "Selection",
                "ColumnHider",
                "ColumnResizer",
                "GridRqlFilter"
            ]
        };
        var filterGrid = new FilteredGrid(filteredGridOption);

Π’Π°Π±Π»ΠΈΡ†Π° ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΠΆΡ€ΠΈΠ²Π°Π΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, Π½ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ панСль ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ

     var tableFilterControlPanel = new FilterControlPanel({
                "title": "ПанСль управлСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ ",
                "id": "tableFilter",
                "name": "plotPublishPrice",
    
                "filteredStoreDataOption": [
                    {
                        "label": "Имя",
                        "value": {
                            "type": "string",
                            "name": "name",
                            "field": {
                                'type': "TextBox"
                            }
                        },
                        "filter": [
                            {"id": 0, "label": "=", "value": "eq"},
                            {"id": 0, "label": "!=", "value": "ne"}
                        ]
                    },
                    {
                        "label": "Ѐамилия",
                        "value": {
                            "type": "string",
                            "name": "surname",
                            "field": {
                                'type': "TextBox"
                            }
                        },
                        "filter": [
                            {"id": 0, "label": "=", "value": "eq"},
                            {"id": 0, "label": "!=", "value": "ne"}
                        ]
                    }
                ],
                "store": new (declare([Rest, RequestMemory, Trackable]))({
                    'headers': {
                        'Accept': 'application/json'
                    },
                    "target": "/rest/filters_list"
                })
            });
            
            var tableDataPreviewControlPanel = new DataPreviewControlPanel({
                        title: "Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ",
                        filterControlPanel: tableFilterControlPanel,
                        dataViewer: filterGrid
                    });
    

ДокумСнация

(Coming soon)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ИспользованиС модуля Chart

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΌΡ‹ создавали Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Rest DataStore (Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ backend )

    var centralDataStore = new (declare([StoreRqlFilter, Trackable]))({
                'headers': {
                    'Accept': 'application/json'
                },
                'useRangeHeaders': true,
                "target": "/rest/sin"
            });

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим Char. Π’ Π΄Π°Π½Π½ΠΎΠΌ случачС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ синусоиду, ΠΏΠΎ этому Chart type Π±ΡƒΠ΄Π΅Ρ‚ Lines

    var filterChartOption = {
            "title": "Гистограмма Ρ†Π΅Π½Ρ‹ выставлСнных Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²", // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ title элСмСнта 
            "name": "plotPublishPrice", // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ name элСмСнта 
            "store": centralDataStore, // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 
            "type": Lines, // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ Ρ‡Π°Ρ€Ρ‚Π° 
            "xAxisLabel": 'Ось абсцисс',    // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π»Π΅ΠΉΠ±Π» для 
            "yAxisLabel": 'Ось ΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚'     // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ Ρ‡Π°Ρ€Ρ‚Π° 
        };
    
    var filterChart = new Chart(filterChartOption);

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ„Π»ΡŒΡ‚Ρ€Π°ΠΌΠΈ. Π‘ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ создадим саму панСль Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² для нашСго Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

        var chartFilterControlPanel = new FilterControlPanel({
            "title": "ПанСль управлСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ ", // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ title ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΈΠ΄Π΅Π½ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ элСмСнта
            "id": "chartFilter", // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ id  элСмСнта 
            "name": "plotPublishPrice", // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ name  элСмСнта 
            "columns": [ // ΠŸΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΊΠΎΠ»Π½ΠΎΠΊ для Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²(ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ совмСстимы с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ dgrid)
                {"label": "id", "field": "id"}, 
                {
                    "label": "НазваниС",
                    "field": "name",
                    "editor": "text",
                    "editOn": "dblclick",
                    "autoSave": true
                }
            ],
            "filteredStoreDataOption": [  // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΏΡ†ΠΈΠΈ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²
                {
                    "label": "Ось абсцисс",  // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ label для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°
                    "value": { // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ значСния 
                        "type": "string", // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ значСния 
                        "name": "x", // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ фактичСскоС имя 
                        "field": {
                            'type': "TextBox" // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ editor для поля
                        }
                    },
                    "filter": [ // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ списко доступных Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² для поля
                        {"id": 0, "label": "=", "value": "eq"}, 
                        {"id": 0, "label": ">", "value": "gt"},
                        {"id": 0, "label": "<", "value": "lt"},
                        {"id": 0, "label": ">=", "value": "gte"},
                        {"id": 0, "label": "<=", "value": "lte"},
                        {"id": 0, "label": "!=", "value": "ne"}
                    ]
                },
                {
                    "label": "Ось ΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚",
                    "value": {
                        "type": "string",
                        "name": "y",
                        "field": {
                            'type': "TextBox"
                        }
                    },
                    "filter": [
                        {"id": 0, "label": "=", "value": "eq"},
                        {"id": 0, "label": ">", "value": "gt"},
                        {"id": 0, "label": "<", "value": "lt"},
                        {"id": 0, "label": ">=", "value": "gte"},
                        {"id": 0, "label": "<=", "value": "lte"},
                        {"id": 0, "label": "!=", "value": "ne"}
                    ]
                }
            ],
            "store": new (declare([Rest, RequestMemory, Trackable]))({ // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ сторС Π΄Π» яхранСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²
                'headers': {
                    'Accept': 'application/json'
                },
                "target": "/rest/filters_list"
            })
        });

Π‘ΠΎΠ΅Π΄Π΅Π½ΠΈΠΌ панСль Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΈ chart DataPreviewControlPanel - ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° Π½Π°Π΄ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ которая Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ панСль Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

    var chartDataPreviewControlPanel = new DataPreviewControlPanel({
            title: "Ѐункция f(x) = sin(x) (Бинусоида)",
            filterControlPanel: chartFilterControlPanel,
            dataViewer: filterChart
        });

ИспользованиС модуля Composite

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ обьСдСним наш Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Chart ΠΈ Π²ΠΈΠΎΠ΄Π΅Ρ‚ FilteredGrid. Π‘Π°ΠΌ ΠΏΠΎ сСбС, ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ Composite ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любоС количСство Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов групируя ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ управлСния ΠΈ взаимодСйсвия этими элСмСнтами.

     var composite = new Composite({
            components: [tableDataPreviewControlPanel,
                chartDataPreviewControlPanel
            ]
        }).placeAt(dom.byId('grid'));
        
        composite.startup();

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ RQL

  • query
    • LogicOperator
      • and() - содСрТит мноТСство Π½ΠΎΠ΄ условий ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŒΠ΅Π΄Π΅Π½Π΅Π½Ρ‹ ΠΏΠΎ И
      • or() - содСрТит мноТСство Π½ΠΎΠ΄ условий ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŒΠ΅Π΄Π΅Π½Π΅Π½Ρ‹ ΠΏΠΎ Π˜Π˜Π›
      • not() - содСрТит мноТСство Π½ΠΎΠ΄ условий ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² НЕ
    • ArrayOperator
      • in() - Π½ΠΎΠ΄Π° для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вхоТдСния значСния Π² ΡƒΠΊΠ°Π·Π°Π½ΠΎΠ΅ пСрСчслСниС
      • out() - Π½ΠΎΠ΄Π° для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ наличия Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½ΠΎΠΌ пСрСчслСниС
    • ScalarOperator
      • eq() - Π½ΠΎΠ΄Π° равСнста
      • ne() - Π½ΠΎΠ΄Π° Π½Π΅ равСнста
      • ge() - Π½ΠΎΠ΄Π° большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
      • gt() - Π½ΠΎΠ΄Π° большС
      • le() - Π½ΠΎΠ΄Π° мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
      • lt() - Π½ΠΎΠ΄Π° мСньшС
      • like() - Π½ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ значСния ΠΏΠΎ маскС
  • select
    • Aggregate func
      • count() - агрСгатная функция для подсчСта количСсва Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
      • max() - агрСгатная функция для подсчСта максимального значСния
      • min() - агрСгатная функция для подсчСта минимального значСния
      • groupby() - агрСгатная функция для групирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  • sort() - Π½ΠΎΠ΄Π° для указания сортировки
  • limit(limit, offset) - Π½ΠΎΠ΄Π° для указания Π»ΠΈΠΌΠΈΡ‚Π° ΠΈ оффсСта Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π² rql(); and(and(eq(q,null()),ne(q,null()),le(q,r),ge(q,u)),or(lt(q,t),gt(q,y),in(q,(a,s,d,f,g)))) &limit(20,30)&sort(-q) &select(q,max(q),min(q),count(q))

####ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° rql запросов ΠŸΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запроса Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 'Accept': 'application/json' для получСния Π΄Π°Π½Π½Ρ‹Ρ… Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ limit() для запрпоса указывая фактичиский Π»ΠΈΠΌΠΈΡ‚ Π½Π° поулчСния Π΄Π°Π½Π½Ρ‹ΠΉ Π² самом rql, Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ сначала ΠΎΡ‚Π»ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎ limit ΡƒΠΊΠ°Π·Π°Π½ΠΎΠΌΡƒ Π² rql, Π° послС Π½Π° Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π»ΠΎΠΆΠ΅Π½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ….

ΠžΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ΠΉ rql limit(37) ΠžΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ 'Range': 'items=0-14' 'X-Range': 'items=0-14'

Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ содСрТатся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ 'Content-Range': 'items 0-13/37'

Как Π²ΠΈΠ΄Π½ΠΎ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‚Π° содСрТит наш Π»ΠΈΠΌΠΈΡ‚ ΠΎΡ‚ΠΏΡ€Π²Π»Π΅Π½Ρ‹ΠΉ Π² rql Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ основной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ 'items 0-13/37' -> limit(37) А Π»ΠΈΠΌΠΈΡ‚Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ…, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС 'items 0-13/37' -> 'Range': 'items=0-14'

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ query запросы Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ GET.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Ρ‹Π΅ Π² сторС, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ POST запрос для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Π΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PUT запрос Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π’Π°ΠΊ ΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ DELETE запрос Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт.

POST

Π’ Ρ‚Π΅Π»Π΅ запроса ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŒΠΊΠ΅Ρ‚ Π»Π±ΠΎ массив ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.

{ 
    "id": "1",
    "name": "Test",
    "surname": "Test"
}
PUT

Π’ Ρ‚Π΅Π»Π΅ запроса ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŒΠΊΠ΅Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ id. Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ΅Π½ΠΎ Π»ΠΈΠ±ΠΎ Π² Ρ‚Π΅Π»Π΅ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π° Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ REST запроса.

{ 
    "id": "1",
    "name": "Test",
    "surname": "Test"
}
DELETE

License

Copyright (c) 2016 avz-cmf Licensed under the GNU license.

FAQs

Package last updated on 24 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts