openbel-api 1.0.1-java → 1.0.2-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +34 -0
- data/VERSION +1 -1
- data/app/openbel/api/routes/datasets.rb +13 -0
- data/lib/openbel/api/nanopub/mongo.rb +27 -12
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b87c630e974a44f066e87080bc5eaa36fbad8b9
|
4
|
+
data.tar.gz: 7b3868b183369a508d18a3a7fc230f1c3f881d52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e170f818a3c1e31e07af75cdfd05ecbeda514fe21e314335369e9f8ff88ab62452c5cd10e11b49bcfc1a80f6633b0040f662eebc0e82d4648dc5a8d03c9c0f97
|
7
|
+
data.tar.gz: 2dfcc8de40f092e7b31e23c4064e311ec6a9e934d43f401d2f30e4b3829aa833a78b3f8f51963fdf7865ebcaf7be226cd2091dd54b0ec88725cadf3ec2514af5
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,19 @@ All notable changes to openbel-api will be documented in this file. The curated
|
|
3
3
|
|
4
4
|
This project adheres to [Semantic Versioning][Semantic Versioning].
|
5
5
|
|
6
|
+
## [1.0.1][1.0.1] - 2016-06-08
|
7
|
+
### Added
|
8
|
+
- Renaming APIs and code on [new terminology][new terminology].
|
9
|
+
|
10
|
+
- BEL specification version can be set in configuration file which controls the BEL version used as input/output. Affected APIs:
|
11
|
+
|
12
|
+
- */api/datasets*
|
13
|
+
- */api/expressions*
|
14
|
+
- */api/nanopubs*
|
15
|
+
|
16
|
+
- Support storage of BEL 2.0 nanopubs.
|
17
|
+
- Added */api/expressions/validation* API that returns syntax and signature validations for a BEL expression.
|
18
|
+
|
6
19
|
## [1.0.0][1.0.0] - TBD
|
7
20
|
### Added
|
8
21
|
- Support JWT authentication via *token* query parameter ([PR #108][108]).
|
@@ -74,6 +87,7 @@ Datasets are stored with a URI computed from the scheme and host that is serving
|
|
74
87
|
- Retrieve equivalent namespace values from the individual.
|
75
88
|
- Retrieve orthologous namespace values from the individual.
|
76
89
|
|
90
|
+
[1.0.1]: https://github.com/OpenBEL/openbel-api/compare/0.6.2...1.0.1
|
77
91
|
[1.0.0]: https://github.com/OpenBEL/openbel-api/compare/0.6.2...1.0.0
|
78
92
|
[0.6.2]: https://github.com/OpenBEL/openbel-api/compare/0.6.1...0.6.2
|
79
93
|
[0.6.1]: https://github.com/OpenBEL/openbel-api/compare/0.6.0...0.6.1
|
@@ -91,3 +105,5 @@ Datasets are stored with a URI computed from the scheme and host that is serving
|
|
91
105
|
[102]: https://github.com/OpenBEL/openbel-api/issues/102
|
92
106
|
[105]: https://github.com/OpenBEL/openbel-api/issues/105
|
93
107
|
[108]: https://github.com/OpenBEL/openbel-api/issues/108
|
108
|
+
[new terminology]: https://github.com/OpenBEL/openbel-api#vocabulary
|
109
|
+
|
data/README.md
CHANGED
@@ -223,6 +223,40 @@ server {
|
|
223
223
|
|
224
224
|
API documentation with *Try it* functionality is available here [OpenBEL API documentation][OpenBEL API documentation]. You can download the [RAML 0.8][RAML] or Swagger specification files, try it on the webpage or generate curl, httpie, and various language templates for using the API.
|
225
225
|
|
226
|
+
## Development
|
227
|
+
|
228
|
+
### branches
|
229
|
+
|
230
|
+
- master branch
|
231
|
+
- Contains stable code. Releases are created from this branch using a tag (e.g. `MAJOR.MINOR.PATCH`).
|
232
|
+
|
233
|
+
- next branch
|
234
|
+
- Contains unstable code. Commits should be merged into master after it stabilizes.
|
235
|
+
|
236
|
+
### releases
|
237
|
+
|
238
|
+
Releases of *openbel-api* should follow these steps:
|
239
|
+
|
240
|
+
1. Update the version in the `VERSION` file.
|
241
|
+
|
242
|
+
2. Add changes for this version to the `CHANGELOG` file. This file is modelled after http://keepachangelog.com/.
|
243
|
+
|
244
|
+
3. Push the changes for `VERSION` and `CHANGELOG` on the master branch.
|
245
|
+
|
246
|
+
4. Ensure the *master* branch has all of the required changes.
|
247
|
+
|
248
|
+
5. Create a git tag, named after the version, on the *master* branch. Push this tag to GitHub.
|
249
|
+
|
250
|
+
6. Create the Ruby and Java RubyGem for *openbel-api*.
|
251
|
+
|
252
|
+
`gem build .gemspec`
|
253
|
+
|
254
|
+
7. Create a release on GitHub for this version and attach the gem file.
|
255
|
+
|
256
|
+
8. Push gems to RubyGems.
|
257
|
+
|
258
|
+
`gem push openbel-api-VERSION-java.gem`
|
259
|
+
|
226
260
|
-----
|
227
261
|
|
228
262
|
Built with collaboration and a lot of :heart: by the [OpenBEL][OpenBEL] community.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.2
|
@@ -71,6 +71,19 @@ module OpenBEL
|
|
71
71
|
|
72
72
|
def check_dataset(io, type)
|
73
73
|
begin
|
74
|
+
|
75
|
+
# See https://github.com/OpenBEL/openbel-api/issues/120
|
76
|
+
BEL.nanopub(io, type, :language => @bel_version).each do |nanopub|
|
77
|
+
BEL.object_convert(String, nanopub.to_h) { |str|
|
78
|
+
unless str.valid_encoding?
|
79
|
+
msg = 'Invalid encoding. UTF-8 is required.'
|
80
|
+
response = render_json({:status => 415, :msg => msg})
|
81
|
+
halt(415, { 'Content-Type' => 'application/json' }, response)
|
82
|
+
end
|
83
|
+
}
|
84
|
+
end
|
85
|
+
io.rewind
|
86
|
+
|
74
87
|
nanopub = BEL.nanopub(io, type).each.first
|
75
88
|
|
76
89
|
unless nanopub
|
@@ -97,9 +97,7 @@ module OpenBEL
|
|
97
97
|
references = @collection.aggregate(
|
98
98
|
[
|
99
99
|
{
|
100
|
-
:$project => {
|
101
|
-
"references.namespaces" => 1
|
102
|
-
}
|
100
|
+
:$project => {"references.namespaces" => 1}
|
103
101
|
},
|
104
102
|
{
|
105
103
|
:$unwind => "$references.namespaces"
|
@@ -107,22 +105,30 @@ module OpenBEL
|
|
107
105
|
{
|
108
106
|
:$project => {
|
109
107
|
keyword: "$references.namespaces.keyword",
|
110
|
-
|
108
|
+
type: "$references.namespaces.type",
|
109
|
+
domain: "$references.namespaces.domain"
|
111
110
|
}
|
112
111
|
},
|
113
112
|
{
|
114
113
|
:$group => {
|
115
|
-
_id: "$keyword",
|
116
|
-
|
114
|
+
_id: "$keyword",
|
115
|
+
type: {
|
116
|
+
:$addToSet => "$type"
|
117
|
+
},
|
118
|
+
domain: {
|
119
|
+
:$addToSet => "$domain"
|
117
120
|
}
|
118
121
|
}
|
119
122
|
},
|
120
123
|
{
|
121
|
-
:$unwind => "$
|
124
|
+
:$unwind => "$type"
|
125
|
+
},
|
126
|
+
{
|
127
|
+
:$unwind => "$domain"
|
122
128
|
},
|
123
129
|
{
|
124
130
|
:$project => {
|
125
|
-
keyword: "$_id",
|
131
|
+
keyword: "$_id", type: "$type", domain: "$domain", _id: 0
|
126
132
|
}
|
127
133
|
}
|
128
134
|
],
|
@@ -135,10 +141,19 @@ module OpenBEL
|
|
135
141
|
union = []
|
136
142
|
remap = {}
|
137
143
|
references.each do |obj|
|
138
|
-
|
139
|
-
|
140
|
-
obj[
|
141
|
-
|
144
|
+
keyword = obj['keyword']
|
145
|
+
type = obj['type']
|
146
|
+
domain = obj['domain']
|
147
|
+
uri = url = nil
|
148
|
+
if type == :url
|
149
|
+
url = domain
|
150
|
+
elsif type == :uri
|
151
|
+
uri = domain
|
152
|
+
end
|
153
|
+
args = [keyword, uri, url]
|
154
|
+
namespace = BELParser::Expression::Model::Namespace.new(*args)
|
155
|
+
union, new_remap =
|
156
|
+
BEL::Nanopub.union_namespace_references(union, [namespace], 'incr')
|
142
157
|
remap.merge!(new_remap)
|
143
158
|
end
|
144
159
|
|