update README
This commit is contained in:
parent
cee5d0a3e0
commit
65052fbe5c
2 changed files with 56 additions and 5 deletions
60
README.md
60
README.md
|
@ -26,7 +26,8 @@ Requirement
|
||||||
### Runtime Requirement
|
### Runtime Requirement
|
||||||
|
|
||||||
* pcre
|
* pcre
|
||||||
* graphviz version 2.38.0 (20140413.2041)
|
* (optional) graphviz version 2.38.0 (20140413.2041)
|
||||||
|
* (optional) libjson-c-dev
|
||||||
|
|
||||||
Pattern Syntax
|
Pattern Syntax
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -200,10 +201,41 @@ Function prefix mapping
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rendering routes with graphviz
|
Rendering Routes With Graphviz Support
|
||||||
-------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
The `r3_tree_render_file` API let you render the whole route trie into a image.
|
||||||
|
|
||||||
|
To use graphviz, you need to enable graphviz while you run `configure`:
|
||||||
|
|
||||||
|
|
||||||
|
./configure --enable-graphviz
|
||||||
|
|
||||||
|
|
||||||
|
Here is the sample code of generating graph output:
|
||||||
|
|
||||||
|
|
||||||
|
```c
|
||||||
|
node * n = r3_tree_create(1);
|
||||||
|
|
||||||
|
r3_tree_insert_path(n, "/foo/bar/baz", NULL);
|
||||||
|
r3_tree_insert_path(n, "/foo/bar/qux", NULL);
|
||||||
|
r3_tree_insert_path(n, "/foo/bar/quux", NULL);
|
||||||
|
r3_tree_insert_path(n, "/foo/bar/corge", NULL);
|
||||||
|
r3_tree_insert_path(n, "/foo/bar/grault", NULL);
|
||||||
|
r3_tree_insert_path(n, "/garply/grault/foo", NULL);
|
||||||
|
r3_tree_insert_path(n, "/garply/grault/bar", NULL);
|
||||||
|
r3_tree_insert_path(n, "/user/{id}", NULL);
|
||||||
|
r3_tree_insert_path(n, "/post/{title:\\w+}", NULL);
|
||||||
|
|
||||||
|
char *errstr = NULL;
|
||||||
|
int errcode;
|
||||||
|
errcode = r3_tree_compile(n, &errstr);
|
||||||
|
|
||||||
|
r3_tree_render_file(n, "png", "check_gvc.png");
|
||||||
|
r3_tree_free(n);
|
||||||
|
```
|
||||||
|
|
||||||
The `test_gvc_render_file` API let you render the whole route trie into a image.
|
|
||||||
|
|
||||||
![Imgur](http://i.imgur.com/hA8QXRi.png)
|
![Imgur](http://i.imgur.com/hA8QXRi.png)
|
||||||
|
|
||||||
|
@ -222,6 +254,26 @@ digraph g {
|
||||||
....
|
....
|
||||||
```
|
```
|
||||||
|
|
||||||
|
JSON Output Support
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
You can render the whole tree structure into json format output.
|
||||||
|
|
||||||
|
Please run `configure` with the `--enable-json` option.
|
||||||
|
|
||||||
|
Here is the sample code to generate JSON string:
|
||||||
|
|
||||||
|
```c
|
||||||
|
json_object * obj = r3_node_to_json_object(n);
|
||||||
|
|
||||||
|
const char *json = r3_node_to_json_pretty_string(n);
|
||||||
|
printf("Pretty JSON: %s\n",json);
|
||||||
|
|
||||||
|
const char *json = r3_node_to_json_string(n);
|
||||||
|
printf("JSON: %s\n",json);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Use case in PHP
|
Use case in PHP
|
||||||
-----------------------
|
-----------------------
|
||||||
**not implemented yet**
|
**not implemented yet**
|
||||||
|
|
|
@ -35,7 +35,6 @@ END_TEST
|
||||||
|
|
||||||
START_TEST (test_gvc_render_file)
|
START_TEST (test_gvc_render_file)
|
||||||
{
|
{
|
||||||
|
|
||||||
node * n = r3_tree_create(1);
|
node * n = r3_tree_create(1);
|
||||||
|
|
||||||
r3_tree_insert_path(n, "/foo/bar/baz", NULL);
|
r3_tree_insert_path(n, "/foo/bar/baz", NULL);
|
||||||
|
|
Loading…
Reference in a new issue