使用Slumber通过REST API创建和更新Pootle项目

时间:2014-11-06 22:16:11

标签: python rest tastypie pootle

有没有人有一个工作示例,说明如何通过基于Pootle的基于Pootle的REST API创建和更新Tastypie项目及其模板字符串?我真的希望看到一种简单,优雅的方式,例如Slumber

我的情况:我想从我的Web应用程序创建几个Pootle项目。您可以将每个此类项目视为与Web服务中的一组文章中的一篇文章相对应。对于每个项目,我都需要能够

  1. 最初使用提取的(模板)字符串列表(通过API)
  2. 创建它
  3. 提供实际翻译(人为,通过Pootle的Web界面[问题]),
  4. 通过API检索翻译,理想情况下为PO文件,
  5. 更新可翻译字符串集(通过API),以便人类可以执行更多翻译。
  6. 我已经阅读了Pootle的GlossaryAPI definitionits API usage notesTastypie documentationSlumber documentation,但感觉像我错过了一部分。例如,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指的是以下词:

    {'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检索项目10resource_uri)的最有效方法是什么?我想要的原因是为了以后的请求,例如:

    api.projects(10).get()
    

1 个答案:

答案 0 :(得分:1)

你签出了Curling吗?它是一个包含Slumber的库,专门针对Django Tastypie API。它提供了by_url()等方法,可将/generic/transaction/8/等网址转换为generic.transaction(8)