Плохой API является тем, который не используется его целевой аудиторией.
А хороший API является тем, который используется его целевой аудиторией для цели, для которой это было разработано.
А большой API является тем, который используется и его целевой аудиторией для его намеченной цели, и непреднамеренной аудиторией по причинам, непредвиденным ее разработчиками.
, Если Amazon публикует свой API и как SOAP и как REST и остальных, версия побеждает, который не означает, что базовый API SOAP был плох.
я предположил бы, что то же будет верно для Вас. Можно считать все, что Вы хотите о дизайне и стараетесь изо всех сил, но испытание на кислотность будет использованием. Проведите некоторое время, создавая способами надеть обратную связь, какие работы и что не делает и быть готовым осуществить рефакторинг по мере необходимости для создания его лучше.
Ведение журнала SQL в рельсах - Вкратце - вам нужно переопределить метод выполнения ActiveRecord. Там вы можете добавить любую логику для логирования.
Вот упрощенная версия того, с чем связан c0r0ner, чтобы лучше показать:
connection = ActiveRecord::Base.connection
class << connection
alias :original_exec :execute
def execute(sql, *name)
# try to log sql command but ignore any errors that occur in this block
# we log before executing, in case the execution raises an error
begin
File.open(Rails.root.join("/log/sql.txt"),'a'){|f| f.puts Time.now.to_s+": "+sql}
rescue Exception => e
;
end
# execute original statement
original_exec(sql, *name)
end
end
Если вы используете mysql, я бы посмотрел на mysqlbinlog. Он будет отслеживать все, что потенциально обновляет данные. вы можете легко извлечь из этого журнала все, что вам нужно.
http://dev.mysql.com/doc/refman/5.0/en/mysqlbinlog.html
http://dev.mysql.com/doc /refman/5.0/en/binary-log.html[12115 impression
SQL Server? Если так ...
На самом деле, я бы сделал это в конце SQL. Вы можете настроить трассировку и собирать каждый запрос, поступающий через соединение с определенным именем приложения. Если вы сохраните его в таблице, вы можете легко запросить эту таблицу позже.