openbel-api 1.0.1-java → 1.0.2-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|