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,13 +1,87 @@
1 1
 [![Build Status](https://travis-ci.org/algoo/hapic.svg?branch=master)](https://travis-ci.org/algoo/hapic)
2 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 37
 ## TODO references
12 38
 
13 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