![]() |
|
Tutorial Lilith API Walkthorough - Printable Version +- Sinisterly (https://sinister.li) +-- Forum: Coding (https://sinister.li/Forum-Coding) +--- Forum: Python (https://sinister.li/Forum-Python) +--- Thread: Tutorial Lilith API Walkthorough (/Thread-Tutorial-Lilith-API-Walkthorough) |
Lilith API Walkthorough - Inori - 01-05-2016 Yay, more tools! And a hostname to boot! Anyway, it's 4 AM again, and I just finished the first few patches on my API server, so I thought I'd do a runthrough of how it all works. If you've looked at the project page (link in my sig), you'll have seen that there are two ways of using Lilith: POST and Query Strings. POST requests will become more important when I add any kind of file management API, so We'll go over the Query String option first. Query Strings, as a refresher, are the text following a question mark in a url. This text usually represents input values for html forms, but can be parsed to a hash table with PHP, which is what I did. To get a response from Lilith with a Query, it's just the following few lines with python: Code: from requests import get
print get('http://lilithapi.red?action=<action>[&args=[args]]).textCode: curl 'http://lilithapi.red?action=<action>[&args=[args]]'An example of what to use could be 'ip', which doesn't take arguments, or 'gw-ip', which would take a domain name, ie 'sinister.ly', as it's parameter. You can also choose which output format you want from either json (which is the default), plain text, or j-box, from J Language. You can access these by passing the rtype parameter in your Query. Code: #json
$ curl 'http://lilithapi.red?action=ip'
{"ip": "0.0.0.0"}
#text
$ curl 'http://lilithapi.red?action=ip&rtype=text'
ip | 0.0.0.0
#jbox
$ curl 'http://lilithapi.red?action=ip&rtype=jbox'
+----+---------+
| ip | 0.0.0.0 |
+----+---------+For the POSTing side of things, using RESTful APIs can get really confusing in some languages, so I'm just going to stick with python. Basic ip request: Code: from requests import post
print post(url='http://lilithapi.red',files={'action': 'ip'}).textMore complex DNS resolution with jbox return type: Code: from requests import post
print post(
url='http://lilithapi.red', #base url
files={ #start of parameters
'action': 'gw-ip', #equivilant to ?action=gw-ip
'args': 'sinister.ly', #args=sinister.ly
'rtype': 'jbox' #rtype=jbox
}
).text #get the text from the pageSorry this wasn't super informative, I should be waking up in 2 hours, so I'm kinda tired. Anyway, enjoy, and feel free to check out the project. EDIT: POST requests are fucked in python, so just stick with Query Strings. |