Browse Source

improve default documentation

Damien Accorsi 6 years ago
parent
commit
d244833bab
1 changed files with 78 additions and 4 deletions
  1. 78 4
      README.md

+ 78 - 4
README.md View File

1
 [![Build Status](https://travis-ci.org/algoo/hapic.svg?branch=master)](https://travis-ci.org/algoo/hapic)
1
 [![Build Status](https://travis-ci.org/algoo/hapic.svg?branch=master)](https://travis-ci.org/algoo/hapic)
2
 [![Coverage Status](https://coveralls.io/repos/github/algoo/hapic/badge.svg?branch=master)](https://coveralls.io/github/algoo/hapic?branch=master)
2
 [![Coverage Status](https://coveralls.io/repos/github/algoo/hapic/badge.svg?branch=master)](https://coveralls.io/github/algoo/hapic?branch=master)
3
 
3
 
4
-# hapic
5
-Input/Output/Error management for your python controllers with Swagger doc generation
4
+# Hapic in a nutshell
6
 
5
 
7
-## Presentation
6
+Hapic is a framework-agnostic library for implementation of professionnal REST APIs.
8
 
7
 
9
-Hapic is in unstable and development mode. More information soon.
8
+Why you should use Hapic :
9
+
10
+- Hapic adapt naturally to your existing libraries
11
+- Hapic map exceptions to HTTP errors without effort
12
+- Hapic really auto-documents your APIs according to marshmallow,  apispec and web framework routing. You do not "write your doc in docstrings": the documentation is really auto-generated
13
+- Hapic can be used out-of-the-box with Bottle, Flask or Pyramid
14
+
15
+Hapic works with JSON, but it can be used for XML or virtually any data structure format.
16
+
17
+Auto-generated documentation can be visualised with swagger.
18
+
19
+## Philosophy
20
+
21
+Hapic as been developed by algoo in the context of a large client project. The lack of a tool allowing real auto-documentation of Rest API has decided us to develop Hapic.
22
+
23
+Target projects of Hapic are not "quick and dirty" but professionnally architectured projects.
24
+
25
+The separation of concerns between REST APIs layer and Business Stuff layer is in the DNA of Hapic. Hapic is *just* the HTTP Layer over your business code.
26
+
27
+## Licence
28
+
29
+Hapic is licenced under the MIT licence. You can use it in your projects, closed or open sourced.
30
+
31
+## Status, contributions
32
+
33
+Hapic source code is ready for production. Some refactoring are identified and required for maintainability, but public APIs are stable so you can rely on Hapic for your developments.
34
+
35
+Hapic is under active development, based on Algoo projects. We will answer your questions and accept merge requests if you find bugs or want to include functionnalities.
10
 
36
 
11
 ## TODO references
37
 ## TODO references
12
 
38
 
13
 TODO can make reference to #X, this is github issues references.
39
 TODO can make reference to #X, this is github issues references.
40
+
41
+## Installation
42
+
43
+```
44
+virtualenv -p /usr/bin/python3 venv
45
+source venv/bin/activate
46
+python setup.py develop
47
+```
48
+
49
+## Give it a try
50
+
51
+
52
+### A complete user API
53
+
54
+In the `example/usermanagement` directory you can find a complete example of an API allowing to manage users.
55
+
56
+Features are: 
57
+
58
+- get list of all users
59
+- get detail of a given user
60
+- create a user
61
+- delete a user
62
+
63
+In order to test it :
64
+
65
+Install the required dependencies:
66
+
67
+```
68
+pip install bottle flask pyramid`
69
+```
70
+
71
+Run the instance you wan to test (one of the three following lines):
72
+
73
+```
74
+python example/usermanagement/serve_bottle.py
75
+python example/usermanagement/serve_flask.py
76
+python example/usermanagement/serve_pyramid.py
77
+```
78
+
79
+Features shown :
80
+
81
+- auto-generation of the documentation
82
+- managing parameters in the uri path
83
+- managing input schemas
84
+- managing output schema
85
+- management of error cases (404, 500, etc)
86
+- nice exception handling
87
+- automatic dict/object serialization