Skip to content

Commit d8e005d

Browse files
authored
Added several links to improve navigation
1 parent deacfc1 commit d8e005d

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

README.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# FlaskRAML
2-
FlaskRAML is a tool that allows the development of web APIs with Flask, in combination with Domain-Specific Language (DSL) inputs based on RAML. This is a proof of concept implementation, accompanied by a thesis on the topic. One goal of this tool was providing Roundtrip Engineering support for this DSL integration. This means that DSL code and handwritten extensions of it can be evolved separately, and then integrated again over time. This should improve the development experience of Flask with RAML.
2+
FlaskRAML is a tool that allows the development of web APIs with [Flask](http://flask.pocoo.org/), in combination with Domain-Specific Language (DSL) inputs based on [RAML](https://raml.org/). This is a proof of concept implementation, accompanied by a thesis on the topic. One goal of this tool was providing Roundtrip Engineering support for this DSL integration. This means that DSL code and handwritten extensions of it can be evolved separately, and then integrated again over time. This should improve the development experience of Flask with RAML.
33

44
## Getting Started
5-
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system. First off, you will need a copy of this repository. Then, you can just reference the FlaskRAML files in your project to utilise them. Second, you will need to make sure that you have all the dependencies installed. To do this, you can use the requirements.txt file. This file contains all necessary requirements for the project. You can use pip to install all the requirements in that file
5+
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system. First off, you will need a copy of this repository. Then, you can just reference the FlaskRAML files in your project to utilise them. Second, you will need to make sure that you have all the dependencies installed. To do this, you can use the [requirements.txt](requirements.txt) file. This file contains all necessary requirements for the project. You can use pip to install all the requirements in that file
66
``` python
77
pip install -r requirements.txt
88
```
@@ -11,20 +11,20 @@ Please note that the project was done using Python 2.7.10 Thus, you should also
1111
## Creating a simple application
1212
Creating a basic application essentially involves creating a RAML file, and then referencing it via RAMLFlask. To only run the generated code, this minimal example will work, independent of the contents of the RAML file. Additional code is only needed to include handwritten code extensions.
1313

14-
For this, you first have to include the necessary dependencies to the following RAMLFlask classes: Generator, Comparison, and Server. The Generator class is responsible for generating the code artifacts. Then, the Comparison class allows for checks against previous versions of the RAML file, to notify the developer of any changes that would require their attention. Finally, the Server class is actually used for creating a Flask server based on the previous two components.
14+
For this, you first have to include the necessary dependencies to the following RAMLFlask classes: [Generator](RAMLFlask/Generator.py), [Comparison](RAMLFlask/Comparison.py), and [Server](RAMLFlask/Server.py). The Generator class is responsible for generating the code artifacts. Then, the Comparison class allows for checks against previous versions of the RAML file, to notify the developer of any changes that would require their attention. Finally, the Server class is actually used for creating a Flask server based on the previous two components.
1515
``` python
1616
from RAMLFlask.Generator import Generator
1717
from RAMLFlask.Comparison import Comparison
1818
from RAMLFlask.Server import Server
1919
```
20-
The creation of a simple server then utilizes these dependencies and references a RAML file.
20+
The creation of a simple server then utilizes these dependencies and references a RAML file, such as the [example.raml](example.raml) delivered with this proof of concept.
2121
``` python
2222
gen = Generator('./example.raml')
2323
comp = Comparison()
2424
Server(gen, comp).exec_all()
2525
```
2626

27-
If you want to start the regular execution of the project with the provided files, you can execute
27+
If you want to start the regular execution of the project with the provided files, you can execute the [main.py](main.py) Python script.
2828
``` python
2929
python main.py
3030
```
@@ -34,30 +34,30 @@ Please be aware that the URL of the route might also contain the version of the
3434
This repository contains several tests, which should help verify that FlaskRAML is implemented correctly, and actually delivers the benefits mentioned before. Below, each test is described. These tests allow to replicate all evaluation measurements mentioned in the corresponding thesis document.
3535

3636
### Unit tests
37-
FlaskRAML includes a collection of unit tests, with the purpose of verifying that all functions created for FlaskRAML are working as intended. This should help confirm that the current version of FlaskRAML is working, which also makes it suitable for continued development while verifying that everything is working as intended. The unit tests can be started via
37+
FlaskRAML includes a collection of [unit tests](./RAMLFlask_tests), with the purpose of verifying that all functions created for FlaskRAML are working as intended. This should help confirm that the current version of FlaskRAML is working, which also makes it suitable for continued development while verifying that everything is working as intended. The unit tests can be started via
3838
``` python
3939
python RAMLFlask_tests/main.py
4040
```
4141

4242
### Evolution test
43-
Different versions of the same API will have to undergo changes to both handwritten as well as generated code. Changes in the generated code might also affect the handwritten code, for example if a variable is removed. This test confirms the ability of FlaskRAML to provide notifications to the developers, to signal if changes in the generated code could affect hanndwritten code. Recreating the evolution tests is a bit more involved: it includes running
43+
Different versions of the same API will have to undergo changes to both handwritten as well as generated code. Changes in the generated code might also affect the handwritten code, for example if a variable is removed. This ["evolution test"](evolution_test.py) confirms the ability of FlaskRAML to provide notifications to the developers, to signal if changes in the generated code could affect hanndwritten code. Recreating the evolution tests is a bit more involved: it includes running
4444
``` python
4545
python evolution_test.py
4646
```
47-
For each new version of the evolution, the file has to be changed to reflect the current version, before execution.
47+
for each new version of the evolution, the file has to be changed to reflect the current version, before execution.
4848

4949
### Memory test
50-
This test can be used to run several RAML specifications of real-world APIs, to then test the memory utilization for each of the APIs in each stage of the FlaskRAML execution process. This should help to ensure that FlaskRAML is not using too much memory, so that it can actually be run on most machines. The memory test can be started via
50+
The [memory test](mem_tester.py) can be used to run several RAML specifications of real-world APIs, to then test the memory utilization for each of the APIs in each stage of the FlaskRAML execution process. This should help to ensure that FlaskRAML is not using too much memory, so that it can actually be run on most machines. The memory test can be started via
5151
``` python
5252
python mem_tester.py
5353
```
54-
This test uses mprof, thus the path for mprof should be set correctly for this test to work.
54+
This test uses [mprof](https://pypi.python.org/pypi/memory_profiler), thus the path for mprof should be set correctly for this test to work.
5555
```
5656
PATH=/path/to/mprof:$PATH python mem_tester.py
5757
```
5858

5959
### Performance test
60-
This test can be used to run several RAML specifications of real-world APIs, to then test the build performance for each of the APIs in each stage of the FlaskRAML execution process. This should help to ensure that FlaskRAML is performing well enough for real-world usage. The performance test can be started via
60+
The [performance test](performance_test.py) can be used to run several RAML specifications of real-world APIs, to then test the build performance for each of the APIs in each stage of the FlaskRAML execution process. This should help to ensure that FlaskRAML is performing well enough for real-world usage. The performance test can be started via
6161
``` python
6262
python performance_test.py
6363
```

0 commit comments

Comments
 (0)