Project

General

Profile

Repository API » History » Version 3

jahoti, 09/14/2021 02:15 AM
Change links to "hachettebugs.koszko.org" to point to "hydrillabugs.koszko.org"

1 1 jahoti
# Repository API
2
3
{{toc}}
4
5
## Under current schema
6
7
### Fetching script info
8
9
`hydrilla.example.com/script?n=helloscript` returns:
10
```
11
{
12
    "name": "helloscript",
13
    "location": "somedirectory/hello.js",
14
    "sha256":   "e4dbe4dba40e8bd159fb987b0f0cf2c243d7e6b9b9dc792e58dedf1fae38b0a1"
15
}
16
```
17 2 jahoti
or 404 Not Found in case "helloscript" script does not exist. `hydrilla.example.com/content/somedirectory/hello.js` holds the actual script source.
18 1 jahoti
19
### Fetching bag info
20
21
`hydrilla.example.com/bag?n=hellobag` returns:
22
```
23
{
24
    "name": "hellobag",
25
    "components":   [["s", "helloscript"], ["s", "someotherscript"], ["b", "somebag"]]
26
}
27
```
28
or 404 Not Found in case "hellobag" bag does not exist.
29
30
### Fetching pattern info
31
32
`hydrilla.example.com/pattern?n=https://example.org/a/*` returns:
33
```
34
{
35
    "pattern":  "https://example.org/a/*",
36
    "payload":  ["b", "hellobag"]
37
}
38
```
39
or 404 Not Found in case requested pattern does not exist.
40
41
### Querying patterns that match given URL
42
43
Finally, `hydrilla.example.com/query?n=https://example.org/a/b` returns:
44
```
45
[{
46
        "pattern":  "https://example.org/a/*",
47
        "payload":  ["b", "hellobag"]
48
    }, {
49
        "pattern":  "https://example.org/a/b",
50
        "payload":  ["b", "fix_by_mrcooldev"]
51
    }, {
52
        "pattern":  "https://example.org/a/b",
53
        "payload":  ["b", "mod_by_missgreatskill"]
54
    }]
55
```
56
or in case no patterns match the requested URL, it returns just:
57
```
58
[]
59
```
60
or in case the URL is of wrong format it returns some HTTP error.
61
62
## Under the upcoming schema
63
64 3 jahoti
Also, once we get to do the redesign discussed in the <https://hydrillabugs.koszko.org/boards/1/topics/56>, the JSON will look more like the following.
65 1 jahoti
66
### Fetching bag info
67
```
68
{
69
    "name": "hellobag",
70
    "dependencies": ["someotherbag", "yetanotherone"],
71
    "scripts": [{
72
            "location": "somedirectory/hello.js",
73
            "sha256":   "e4dbe4dba40e8bd159fb987b0f0cf2c243d7e6b9b9dc792e58dedf1fae38b0a1"
74
        }, {
75
            "location": "somedirectory/bye.js",
76
            "sha256":   "5099d27284c2257d2983450585cbd4bede6475519755508047e213d985cbc7c9"
77
        }]
78
}
79
```
80
81
### Fetching resource info
82
83
`hydrilla.example.com/resource?n=example_org_minimal` returns:
84
```
85
{
86
    "name": "example_org_minimal",
87
    "description": "suckless something something",
88
    "mappings": [{
89
            "pattern":  "https://example.org/a/*",
90
            "payload":  "some_KISS_bag"
91
        }, {
92
            "pattern":  "https://example.org/t/*",
93
            "payload":  "another_KISS_bag"
94
        }]
95
}
96
```
97
or 404 Not Found in case "example_org_minimal" resource does not exist.
98
99
### Querying patterns that match given url
100
101
`hydrilla.example.com/query?n=https://example.org/a/b` returns:
102
```
103
[{
104
    "name": "example_org_minimal",
105
    "description": "suckless something something",
106
    "mappings": [{
107
            "pattern":  "https://example.org/a/*",
108
            "payload":  "some_KISS_bag"
109
        }, {
110
            "pattern":  "https://example.org/t/*",
111
            "payload":  "another_KISS_bag"
112
        }]
113
}, {
114 2 jahoti
    "name": "example_org_experimental",
115 1 jahoti
    "description": "[...]\npatches are WANTED!",
116
    "mappings": [{
117
            "pattern":  "https://example.org/**",
118
            "payload":  "quick_and_dirty_bag"
119
        }]
120
}]
121
```