1

Pootle のTastypieベースの REST APIを介してPootleプロジェクトとそのテンプレート文字列を作成および更新する方法の実例はありますか? たとえば、 Slumberを使用して、これを行うための最小限のエレガントな方法を見たいと思っています。

私の場合: Web アプリケーションからいくつかの Pootle プロジェクトを作成したいと考えています。このような各プロジェクトは、Web サービスの記事のコレクション内の 1 つの記事に対応していると考えることができます。これらのプロジェクトのそれぞれについて、私はできる必要があります

  1. (API を介して) 抽出された (テンプレート) 文字列のリストを使用して最初に作成し、
  2. 実際の翻訳を提供する (人間、Pootle の Web インターフェース [問題ではない])、
  3. 理想的にはAPIを介してPOファイルとして翻訳を取得し、
  4. 人間がより多くの翻訳を実行できるように、翻訳可能な文字列のセットを (API を介して) 更新します。

Pootle の用語集API 定義その API 使用上の注意Tastypie のドキュメントSlumber のドキュメントを読みましたが、足りない部分があるように感じます。たとえば、Tastypie はリクエスト URL でフィルタリング パラメーターを指定するための優れたオプションを提供しますが、アプリ内で適切なプロジェクトを検索するには、プロジェクトのリスト全体を取得する必要があると感じ、他の人がどのように API を使用しているのか疑問に思います。 .

次のコードは、新しいプロジェクトを正しく作成します。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import slumber

api = slumber.API('http://localhost:8000/api/v1/', auth=('admin', 'admin'))

project_data = {
    'code': 'test01',
    'fullname': 'Test #01',
    'description': 'Another test.',
    'source_language': '/api/v1/languages/2/',
    'translation_projects': [],
}

new_project = api.projects.post(project_data)

そしてnew_project、次のdictを参照します:

{'backlink': 'http://localhost:8000/projects/test01/',
 'checkstyle': 'standard',
 'code': 'test01',
 'description': '<p>Another test.</p>',
 'fullname': 'Test #01',
 'ignoredfiles': u'',
 'localfiletype': 'po',
 'resource_uri': '/api/v1/projects/10/',
 'source_language': '/api/v1/languages/2/',
 'translation_projects': [],
 'treestyle': 'auto'}

たとえば、code後で値を保持しているとします。idプロジェクトの(10から)を取得する最も効率的な方法は何resource_uriですか? 私がそれを望む理由は、次のような後のリクエストのためです。

api.projects(10).get()
4

1 に答える 1

1

カーリングはもうチェックしましたか?これは Slumber をラップするライブラリであり、特に Django Tastypie API を対象としています。by_url()のようなURL を に変換するメソッドを提供し/generic/transaction/8/ますgeneric.transaction(8)

于 2014-11-07T07:53:11.557 に答える